Verzeichnis von anderem Server auslesen
Christian Heiss
- perl
Hallo,
ist es möglich via Perl ein Verzeichnis auf einem share von einem anderen Server auszulesen?
Alle meine bisherigen Versuche scheiterten.
Mein script:
#! /usr/bin/perl -w
use strict;
use CGI;
my ($query, $datei, $dateien, @dateien, $dateinamen, @dateinamen, $i);
$query = new CGI;
print $query->header();
print $query->start_html(-title=>'Intraweb-Server Test');
opendir(DIR, $query->param('ordner')) || die "Fehler beim Lesen des Verzeichnisses";
while ($datei = readdir(DIR)){
@dateien = (@dateien,$datei);
}
closedir(DIR);
shift(@dateien);
shift(@dateien);
$dateien = @dateien; # Länge des Datei-Arrays bestimmen
@dateinamen = @dateien; # Dateinamen zur Weiterverarbeitung speichern
for ($i = 0; $i < $dateien; $i++){ #Dateien ausgeben
print '<a href="file:/'.$query->param('ordner').'/'.$dateien[$i].'">'.$dateinamen[$i].'</a><br>'; # Link anzeigen
}
print $query->end_html(); # HTML-Tags abschliessen
Sorry, obige Beschreibung fehlt was!
Mein script:
#! /usr/bin/perl -w
use strict;
use CGI;
my ($query, $datei, $dateien, @dateien, $dateinamen, @dateinamen, $i);
$query = new CGI;
print $query->header();
print $query->start_html(-title=>'Intraweb-Server Test');
opendir(DIR, $query->param('ordner')) || die "Fehler beim Lesen des Verzeichnisses";
while ($datei = readdir(DIR)){
@dateien = (@dateien,$datei);
}
closedir(DIR);
shift(@dateien);
shift(@dateien);
$dateien = @dateien; # Länge des Datei-Arrays bestimmen
@dateinamen = @dateien; # Dateinamen zur Weiterverarbeitung speichern
for ($i = 0; $i < $dateien; $i++){
print '<a href="file:'.$query->param('ordner').'/'.$dateien[$i].'">'.$dateinamen[$i].'</a><br>'; # Link anzeigen
}
print $query->end_html();
Das Script funktioniert insoweit, wenn die Files/Verzeichnis auf dem Server liegen, sobald aber auf einem Remote Rechner, geht nix mehr!
Der Aufruf sollte/muss folgendermaßen erfolgen:
http://<Webservername>/<scriptname>?ordner=//<remote-server>/<share-name>
Wenn mir jemand helfen könnte wäre ich wirklich dankbar dafür!
Ist das überhaupt möglich?
Hi,
ist es möglich via Perl ein Verzeichnis auf einem
share von einem anderen Server auszulesen?
was ist ein "share"?
Die Antwort auf Deine Frage lautet genau dann "ja",
wenn der andere Server Dir einen Zugang über ein
geeignetes KOmmunikationsprotokoll erlaubt. Tut er das?
opendir(DIR, $query->param('ordner')) || die "Fehler
beim Lesen des Verzeichnisses";
Dies würde erfordern, daß der "ordner" innerhalb
Deines Dateisystems sichtbar ist. Ein geeignetes
Protokoll wäre also beispielsweise ein NFS-Mount.
Viele Grüße
Michael
Hallo,
ist es möglich via Perl ein Verzeichnis auf einem
share von einem anderen Server auszulesen?
was ist ein "share"?
ein share ist eine Freigabe.
Die Antwort auf Deine Frage lautet genau dann "ja",
wenn der andere Server Dir einen Zugang über ein
geeignetes KOmmunikationsprotokoll erlaubt. Tut er das?
Ja das tut er!
opendir(DIR, $query->param('ordner')) || die "Fehler
beim Lesen des Verzeichnisses";
Dies würde erfordern, daß der "ordner" innerhalb
Deines Dateisystems sichtbar ist. Ein geeignetes
Protokoll wäre also beispielsweise ein NFS-Mount.
Der Ordner ist sichtbar!
Hatte noch vergessen zu schreiben:
Der neue Server läuft auf einer Unix Kiste und ich will ein Verzeichnis auslesen, das auf einer Windows Kiste liegt.
Bisher wurde das script auch auf einem Windowsserver ausgeführt. Da geht ja alles!
Gruß
Christian
Hi Christian,
Die Antwort auf Deine Frage lautet genau dann "ja",
wenn der andere Server Dir einen Zugang über ein
geeignetes KOmmunikationsprotokoll erlaubt. Tut er das?
Ja das tut er!
Und zwar welches? (Windows-SMB vielleicht?)
Der neue Server läuft auf einer Unix Kiste und ich will ein
Verzeichnis auslesen, das auf einer Windows Kiste liegt.
Bisher wurde das script auch auf einem Windowsserver ausgeführt.
Da geht ja alles!
Aha. Und wie blendest Du nun dieses Verzeichnis über Betriebs-
systemgrenzen hinweg ein? Verwendest Du Samba oder etwas Ähnliches?
Erzähl doch einfach mal, was Du wirklich tust ... meine Kristallkugel
ist bereits ziemlich abgenutzt.
Gespannte Grüße
Michael