[GastForen Archiv Perl und CGI

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste

ftp automatisieren mit perl

oesi50
  
Beiträge gesamt: 2315

15. Jun 2004, 14:09
Bewertung:

gelesen: 1037

Beitrag als Lesezeichen
ich habe Dir mal ein Grundgerüst gebaut, das kannst Du dann noch erweitern/ergänzen.

#!/usr/bin/perl

use strict;
use warnings;
use Net::FTP;

my $ftp_pasv = 1; # 1: passiv, 0: nicht passiv
my $remote_path = '.'; # hier muss der Remote Pfad stehen, ohne / am Ende(so wie im FTP-Programm angezeigt)
my $local_path = '.'; # hier muss der lokale Pfad stehen, ohne / am Ende(Festplatte, wo die Datei hin soll)
# '.' ist der aktuelle Pfad

my $program = $0;

print "IP:";
my $host = <STDIN>;
chomp($host);
print "Port:";
my $port = <STDIN>;
chomp($port);
print "User:";
my $user = <STDIN>;
chomp($user);
print "PW:";
my $password = <STDIN>;
chomp($password);

$port ||= '21'; # wenn kein Port angegeben wurde dann 21

my $ftp = Net::FTP->new($host, Port => $port, Passiv => $ftp_pasv, Timeout => 30, Blocksize => 2048);

if (!defined($ftp)) {
print "$program: can't create FTP object: $@\n";
exit;
}
if ($ftp->login($user, $password) == 0) {
print "$program: can't login to $host\n";
exit;
}

my @rem_dir = $ftp->dir($remote_path);
for my $z(@rem_dir){
my ($fmode,undef,$fuser,$fgroup,$fsize,$fmon,$fday,$ftime,$fname) =split(/\s+/,$z);
next if($fmode =~ /^d/);
my $file = $fname;
my $remote_name = $ftp->get("$remote_path/$file", "$local_path/$file");
}

$ftp->quit;


Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)

(Dieser Beitrag wurde von oesi50 am 15. Jun 2004, 14:20 geändert)
Dieser Beitrag wurde nicht geändert.