Farid Hajji: Perl - Einführung, Anwendungen, Referenz
2., aktualisierte und erweiterte Auflage
Addison-Wesley Longman, ISBN 3-8273-1535-2
ftp-client.pl
#!/usr/local/bin/perl -w
# ftp-client.pl -- Hole eine Liste FTP-URLs von FTP-Servern
# Verwendung: ftp-client.pl FTP-URL-LISTE [FTP-URL-LISTE ...]
use Net::FTP; # FTP-Protokoll aus dem CPAN
use File::Basename; # basename() eines Pfades
# ----- CONFIGURE -----------------------------------------------
use constant USER => 'anonymous'; # i.d.R. okay.
use constant PASS => 'farid.hajji@ob.kamp.net'; # Anpassen!
# ----- END OF CONFIGURE ----------------------------------------
while (<>) {
chomp; # Abschliessendes Newline entfernen
# Nur FTP-URLs der Form: ftp://hostname/path akzeptieren
next unless m|(.+?)://(.+?)/(.+)|;
($proto, $host, $path) = ($1, $2, $3);
next unless $proto eq 'ftp';
# Erzeuge neues Net::FTP-Objekt mit dem Ziel $host
my $ftp = Net::FTP->new($host);
unless (defined $ftp) {
warn "Can't create Net::FTP Object to $host: $@\n"; next;
}
# Beim FTP-Server einloggen
unless (defined ($ftp->login(USER, PASS))) {
warn "can't login to $host\n"; next;
}
# Binary-Modus, damit Dateien unveraendert bleiben
$ftp->binary();
# Hole Datei /$path
# und speichere sie lokal unter dem gleichen Basename.
unless (defined ($ftp->get("/$path", basename($path)))) {
warn "can't get file /$path\n"; next;
}
# Aus dem FTP-Server explizit ausloggen.
# Das ist hier ueberfluessig, da das Objekt $ftp am Ende
# dieses Blocks automatisch zerstoert und somit die
# Verbindung im Net::FTP-Destruktor aufgeloest wird.
$ftp->quit();
}
[Prev] [Up] [Relevant Chapter] [Next]
[Alte Quelle]
| Last modified: $Date: 2006/05/18 12:55:57 $ FH. Search :: Sitemap :: Disclaimer :: Copyright :: Privacy |
|