Net::FTP

Post Reply
Message
Author
srtwist
Posts: 11
Joined: 20. May 2001 11:28

Net::FTP

#1 Post by srtwist »

#!/usr/bin/perl -w

use Net::FTP;

$ftp = Net::FTP->new("ftp.geocities.com", debug => 1);
$ftp ->login("username",'passwort@ftp.geocities.com');
$ftp ->binary;
$ftp ->put("./xxxxxx"); ### das klappt nicht ich will doch nur eine datei auf den ftp sever hochladen
$ftp ->quit;


kann mir jemand helfen
danke

ratte

Re: Net::FTP

#2 Post by ratte »

es waere eine saubere sache gewesen, wenn du deinen Net::FTP-Thread in einem behalten haettest, dann haettest du naemlich auch alle antworten in einer uebersicht.

Also hier noch mal:

-perldoc Net::FTP *lesen!!!*

und wenn die Erfahrung noch fehlt:
-manuell ausprobieren, was automatisiert funktionieren soll.

Bist gar nicht so weit vom Ziel entfernt, also, streng dich noch ein bisschen an und lass dir nicht alles vorkauen.

Das scheint nicht besonders nett zu sein, aber du willst doch was lernen, nicht wahr?

ratte

hugenay

Re: Net::FTP

#3 Post by hugenay »

$SERVER=ftp.wasweissich.de
$SERVER_PASS=STrenggeheim

use Net::FTP ();

sub ftp_UP {
my $ftp_server;
$ftp_server = Net::FTP->new($SERVER, Debug => 0);
$ftp_server->login("$USERNAME","$SERVER_PASS");
$ftp_server->ascii;
$ftp_server->put("$homepage");
$ftp_server->quit;
}

$homepage ist in diesem Fall die Datei die hochgeladen wird. Ich seh jetzt nicht was du falsch hast, ist schon fast nen jahr her, dass ich perl gesehen habe, aber dieses skript (bei www.osiris.de komplett) funktioniert!

gruss hug.

srtwist
Posts: 11
Joined: 20. May 2001 11:28

Re: Net::FTP

#4 Post by srtwist »

ja, habe ja in der doc nachgelesen aber da steht nicht mehr drin !

und was ich nicht verstehe er gibt auch nur sone komische fehlermeldung aus, das er die Datei nicht öfnen konnte!
(Cannot openLocal file /pfad/dateiame datei oder verzeicnis nicht gefunden)
aber die datei ist da !!! und der fpad stimmt auch !

hugenay

Re: Net::FTP

#5 Post by hugenay »

absoluten pfad angegeben?

perl hat doch nen debug-modus, mit dem man zeile für zeile testen kann, was passiert. Das würd ich mal ausprobieren.

srtwist
Posts: 11
Joined: 20. May 2001 11:28

Re: Net::FTP

#6 Post by srtwist »

Ist der Debug Modus nicht so ?=> debug => 1);

und ich habe es auch mit dem absolutem pfad versucht das macht er ja auch nicht aber wen ich das ganze mit dem ftp befehl(progr.) mache klappt es doch !!!Ich habe es genaus so versucht wie es in der doc steht und auch noch einige andere "versionen" und rumprobiert aber es klapt irgendwie nicht !

hugenay

Re: Net::FTP

#7 Post by hugenay »

hast du $ftp also das Objekt deklariert (hoffe das heisst so, bin etwas draussen, muss ich gestehen)?
ruf Net::FTP mal mit () auf.

und ansonsten: gewöhn dir etwas interpunktion an, ich versteh kein wort. Copy&paste mal meinen vorschlag, vielleicht ist ja doch nen vertipper irgendwo.

ratte

Re: Net::FTP

#8 Post by ratte »

>das er die Datei nicht öfnen konnte

das fuehrt uns zu linux-regeln, poste mal die die rechte fuer die herkunftsdatei (lokal):

ls -l <herkunftsdatei>

trotzdem bin ich aber der Meinung, dass das Problem bei der Zieldatei liegt!!

Haste schon von hand gemacht, was das sript machen soll?

ratte

srtwist
Posts: 11
Joined: 20. May 2001 11:28

Re: Net::FTP

#9 Post by srtwist »

-rwxr-xr-x 1 mimo root 406 Jun 8 08:08 index.html

ratte

Re: Net::FTP

#10 Post by ratte »

mannomann, statt naseweise ratschlaege zu geben, habe ich mir nun zeit genommen, Net::FTP selbst zu testen.

hier das Ergebnis:

---schnipp---
#!/usr/local/bin/perl -w #der schalter w gibt perlwarnungen an die konsole aus

sub ftp_UP {
$ftp_server = Net::FTP->new("$SERVER", Debug => 1); # debug=1 gibt debugmeldungen an die konsole aus
$ftp_server->login("$USERNAME",'$SERVER_PASS');
$ftp_server->ascii;
$ftp_server->cwd("incoming"); # fuer ftp uebliches directory, in dem man schreiben darf
$ftp_server->put("./homepage"); # mit pfadangabe :)
$ftp_server->quit;
}

use Net::FTP;

$SERVER="192.168.1.1";
$USERNAME="ftp";
$SERVER_PASS="ftp";
ftp_UP;

---schnapp---

dieses script hat bei mir funktioniert und besonders die debugmeldungen von Net::FTP waren hilfreich beim testen.

ratte

srtwist
Posts: 11
Joined: 20. May 2001 11:28

Re: Net::FTP

#11 Post by srtwist »

Danke Dir Ratte hat gefunst!!!! *freu*

ratte

Re: Net::FTP

#12 Post by ratte »

na siehste, ich hab' auch nur gemacht, was ich dir vorgeschlagen habe:

perldoc Net::FTP

und naja, dass Debug=>0 nicht in Stein gemeisselt ist und den Debuglevel beschreibt, kannte ich schon aus Erfahrung...

...aber so ist das beim Lernen einer neuen Programmiersprache, was man abschreibt, sollte man versuchen zu verstehen, zumindest, wenn's nicht funktioniert.

Freut mich jedenfalls, dass es nun bei dir funzt.

Wo kann man es bewundern?

ratte

srtwist
Posts: 11
Joined: 20. May 2001 11:28

Re: Net::FTP

#13 Post by srtwist »

ja,
ich habe es erst ohne die variablen $benutzer usw gemacht und das wollte er nicht !
jetzt sieht es so aus !

#!/usr/bin/perl

ANFANG: # Sprungbefehl

$off = '192.168.0.99';

$interface = "ippp0";
$shb = `/sbin/ifconfig $interface`;
@zeilen = split(/
/,$shb);
foreach $zeile (@zeilen) {
if ($zeile =~ /inet addr:([^ ]+)/) {
$ip = $1;
}
}
# print "Die IP Adresse des ippp0 = \"$ip\"
";


# if ($ip != $off) {print "online
";}
# else {print "offline
";}

if ($ip != $off) {goto WEITER;}
else {goto ANFANG;}


WEITER: # Sprungbefehl

open(CLEAR," clear |");
print<CLEAR>;
close(CLEAR);


print "
";
print "Die IP Adresse des ippp0 = \"$ip\"
";

########################################
# print "$ip
";### ausgabe original!!!#
########################################
# was in die Datei geschrieben wird #
########################################

open(SCHREIBEN,"> index.html");
print SCHREIBEN "<html>
";
print SCHREIBEN "<head>
";
print SCHREIBEN "<title>TERRABYTE</title>
";
print SCHREIBEN "<META content=\"text/html";
print SCHREIBEN "<META name\=\"Keywords\" content\=Cracks, Hacks,Linux>
";
print SCHREIBEN "</head>
";
print SCHREIBEN "<body bgcolor\=\"#0000000\" text\=\"#cccccc\">
";
print SCHREIBEN "<h1><p align\=\"center\">Terrabyte</p></h1>
";
print SCHREIBEN "<div align\=\"center\"><iframe src\=\"disclaimer.htm\"
width\=920
height\=450
align\=\"center\" hspace\=30 vspace\=20 frameborder\=no
scrolling\=no name\=\"Fenster\">
";
print SCHREIBEN "Leider unterstützt dein Browser keine iFrames!
";
print SCHREIBEN "</iframe>
";
print SCHREIBEN "<p align\=\"center\"<font color\=\"#ffffff\"><a
href=\"http://$ip\">Enter</a>
";

close(SCHREIBEN);

print "
";
print "Schreibe IP Adresse \"$ip\" in Datei \"index.html\"!
";

#####################################################
# Das die index.html wird jetzt auf den ftp geladen #
#####################################################

print "
";
print "Aktualiesiere geänderte Werte!
";
print "
";

sleep(3);

use Net::FTP;

$server="ftp.geocities.com";
$username="terrabytede";
$passwort="nein";
$datei="index.html";


$ftp = Net::FTP->new($server, debug => 1) || die "keine Verbindung mit
$server.
";
$ftp ->login($username, $passwort) || die "Fehler beim einloggen.
";
$ftp ->put($datei) || die "Fehler beim hochladen der Datei.
";
$ftp ->quit() || die "Fehler beim ausloggen von $server.

";

# goto ANFANG;

ratte

Re: Net::FTP

#14 Post by ratte »

fein, und mit 'open' und mit $||@ARGV kannste dein Script mit Parameter(n) aufrufen und andere Files einlesen, damit dein script clean und universell wird.

viel Spass

ratte

Post Reply