[GastForen Archiv Perl und CGI ftp automatisieren mit perl

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Archiv - Archivierte Foren
Themen
Beiträge
Moderatoren
Letzter Beitrag

ftp automatisieren mit perl

Anonym
Beiträge gesamt: 22827

15. Jun 2004, 12:30
Beitrag # 1 von 4
Bewertung:
(1035 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
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";
}
X

ftp automatisieren mit perl

oesi50
  
Beiträge gesamt: 2315

15. Jun 2004, 13:00
Beitrag # 2 von 4
Beitrag ID: #91031
Bewertung:
(1035 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
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]

ftp automatisieren mit perl

oesi50
  
Beiträge gesamt: 2315

15. Jun 2004, 14:09
Beitrag # 3 von 4
Beitrag ID: #91058
Bewertung:
(1035 mal gelesen)
URL zum Beitrag
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)


als Antwort auf: [#91025]
(Dieser Beitrag wurde von oesi50 am 15. Jun 2004, 14:20 geändert)

ftp automatisieren mit perl

Anonym
Beiträge gesamt: 22827

16. Jun 2004, 08:17
Beitrag # 4 von 4
Beitrag ID: #91203
Bewertung:
(1035 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
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]
X