hilfdirselbst.ch
Facebook Twitter gamper-media

"Geht nicht" ist keine gültige Fehlermeldung!

Anonym
Beiträge: 22827
15. Jun 2004, 12:30
Beitrag #1 von 4
Bewertung:
(851 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

ftp automatisieren mit perl


mochte die eingaben $host ,$port ,$user ,$password ,automatisch aus einer textdaei holen und in das script eingelesen ,
habe eine textdatei mitbeispiel:

000.000.000.000
21
hans
kanns

000.000.000.000
21
karl
kreuzer

usw...

nun sollte sich das script zu dem server verbinden mit hans wenn das geht dann abspeichern in der textdatei mit ja hans server ist on ,und dann gleich automatisch weter mit karl usw.....

hmm wird nicht leicht sein aber wer kann mir da helfen ???????
gruss hans !!


#!/usr/bin/perl -w
use Net::FTP;

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


my $ftp = Net::FTP->new($host,
Timeout => 360,
Debug => 1,
Port => $port,
Passive,
);

unless (defined $ftp) {
print "$@\n";
die "Can't create Net::FTP-Object\n";
}


$ftp->login($user,$password) || die "Can't login $!";

@files = $ftp->ls();
foreach $file (@files) {
print "$file\n";
} Top
 
X
oesi50  A  S
Beiträge: 2315
15. Jun 2004, 13:00
Beitrag #2 von 4
Beitrag ID: #91031
Bewertung:
(851 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

ftp automatisieren mit perl


hallo Anonym,

ersetze mal
@files = $ftp->ls();
durch
@files = $ftp->dir();

aber du willst ja eine Datei laden, dass sieht so aus:
$remote_name = $ftp->get("$remote_path/$dir/$file", "$local_path/$dir/$file");

in $remote_name steht nur im Erfolgsfall der Dateiname.

Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)
als Antwort auf: [#91025] Top
 
oesi50  A  S
Beiträge: 2315
15. Jun 2004, 14:09
Beitrag #3 von 4
Beitrag ID: #91058
Bewertung:
(851 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

ftp automatisieren mit perl


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)
als Antwort auf: [#91025]
(Dieser Beitrag wurde von oesi50 am 15. Jun 2004, 14:20 geändert)
Top
 
Anonym
Beiträge: 22827
16. Jun 2004, 08:17
Beitrag #4 von 4
Beitrag ID: #91203
Bewertung:
(851 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

ftp automatisieren mit perl


besten dank oesi50 klasse gemacht ,
habe mir mal deinen homepage angeschaut ,du bist ja ein vollprofi in sachen perl echt cool ,

als Antwort auf: [#91025] Top
 
X