Schrift
[thread]9645[/thread]

shell-script -> ftp -> automatisch einloggen



<< >> 10 Einträge, 1 Seite
daniel
 2003-12-09 22:14
#96402 #96402
User since
2003-09-19
23 Artikel
BenutzerIn
[default_avatar]
hallo,

ich möchte ien shell-script schreiben welches sich automatisch auf nem ftp-server einloggt und bestimmte dateien hochlädt...

leider bekomme ich es nicht hin per ftp zum ftp-server zu connecten und dabei gleich den user und das passwort zu übergeben.

folgendes hab ich im inet gefunden:

ftp user:pass@host:port

das funktioniert aber nicht.

und folgendes script auch nicht:

--
#!/bin/sh

ftp host
user username password
send file1 file1
exit
--

jemand ne idee wie es funktioniert ? oder wo ich mehr dazu finde ?

in der manpage finde ich leider nichts dazu.

tia,

Daniel
format_c
 2003-12-09 22:21
#96403 #96403
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Also die Frage wo du mehr findest ist leicht:http://links.perl-community.de
Die hat jetzt sogar ein schönes Inhaltsverzeichnis ;)

Also wenn die eingaben von ftp auf STDIN erwartet werden sehe ich da große Chancen mit Pipes das ganze zu lösen.

Ich probier das mal eben aus. Kannst ja während dessen etwas in den Links stöbern.

Gruß Alex
format_c
 2003-12-09 22:36
#96404 #96404
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
hab das mit ner Pipe grad mal in Perl probiert, aber das Passwort will der nicht auf STDIN sondern irgendwo anders her. Da ist vielleicht was mit Term::ReadKey oder so zu machen.

Wie es dann mit sh geht, kann ich dir jedoch nicht sagen, aber ich halte es für ein gerücht, dass du dich wie bei Perl solch bequemen Modulen bedienen kannst.

Ich würde dir Empfehlen das ganze mit Perl zu realisieren (ist ja auch für Konsolenscripte gut) und das in der Standarddistri enthaltenen Modul Net::FTP zu realisieren.

Gruß Alex
Strat
 2003-12-10 12:22
#96405 #96405
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
bei ftp gab es doch da einen parameter, wie man das ganze rueberpipen kann....

ftp -s:Dateiname -n -i

Dateiname enthaelt die ganzen ftp-befehle:
open HOST
user USERNAME PASSWORT

mehr hilfe gibts durch: man ftp

aber das ganze mit Perl zu machen ist manchmal einfacher: CPAN:Net::Ftp

[edit]ich glaube, man braucht auch noch ein -i als parameter[/edit]\n\n

<!--EDIT|Strat|1071054479-->
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
ptk
 2003-12-10 12:58
#96406 #96406
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Traditionell kann man ftp-Passwoerter in der Datei $HOME/.netrc unterbringen. Naeheres dazu erzaehlt dir "man netrc"
daniel
 2003-12-10 18:58
#96407 #96407
User since
2003-09-19
23 Artikel
BenutzerIn
[default_avatar]
also mit -s bekomme ich nur 'unknown option'

noch ne idee wie der parameter heissen könnte ?
Strat
 2003-12-10 20:55
#96408 #96408
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
wenn er bei dir nicht -s heisst, dann bleibt nur noch: man ftp
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
ronald
 2003-12-11 09:45
#96409 #96409
User since
2003-08-15
76 Artikel
BenutzerIn
[default_avatar]
[quote=daniel,09.12.2003, 21:14]hallo,

ich möchte ien shell-script schreiben welches sich automatisch auf nem ftp-server einloggt und bestimmte dateien hochlädt...

leider bekomme ich es nicht hin per ftp zum ftp-server zu connecten und dabei gleich den user und das passwort zu übergeben.

folgendes hab ich im inet gefunden:

ftp user:pass@host:port

das funktioniert aber nicht.

und folgendes script auch nicht:

--
#!/bin/sh

ftp host
user username password
send file1 file1
exit
--

jemand ne idee wie es funktioniert ? oder wo ich mehr dazu finde ?

in der manpage finde ich leider nichts dazu.

tia,

Daniel[/quote]
Quote
ich möchte ien shell-script schreiben

warum?

Quote
#!/bin/sh

ftp host
user username password
send file1 file1
exit


Versuch's mal mit

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/sh

ftp host <<DATA


user
username
password
put file1 file1
DATA

exit


Durch den die beiden Kleinerzeichen wird alles bis zum nächsten DATA zusammengefasst und an das Programm übergeben.

Die Leerzeilen an Anfang sind manchmal nötig, weil ich schon mal eine ftp-Client hatte, der am Anfang irgendwelche Meldungen brachte, die ich dann "wegdrücken" musste.

HTH
Ronald
schmeckzilla
 2004-01-27 23:26
#96410 #96410
User since
2003-09-09
23 Artikel
BenutzerIn
[default_avatar]
Ist vielleicht etwas spät die Antwort, aber bis vor kurzem wußte ich es aber auch nicht. ;-)

Dafür kannst Du auch ein Konkurrenzprodukt von wget nehmen.

curl (http://curl.haxx.se/)

BTW ncftpput und ncftpbatch sollten das auch können.

Quote
FTP

Upload all data on stdin to a specified ftp site:

curl -T - ftp://ftp.upload.com/myfile

Upload data from a specified file, login with user and password:

curl -T uploadfile -u user:passwd ftp://ftp.upload.com/myfile

Upload a local file to the remote site, and use the local file name remote too:

curl -T uploadfile -u user:passwd ftp://ftp.upload.com/

Upload a local file to get appended to the remote file using ftp:

curl -T localfile -a ftp://ftp.upload.com/remotefile

Curl also supports ftp upload through a proxy, but only if the proxy is configured to allow that kind of tunneling. If it does, you can run curl in a fashion similar to:

curl --proxytunnel -x proxy:port -T localfile ftp ftp.upload.com
use strict; use warnings;
perl -e 'eval reverse q| )51,1-,4,9,1,1-,7,22,5,8,8,3-,86-,71,51,1,51,86-,21,1,41,8,86-,24-,55-,95-(})001+_$(rhc{pam esrever tnirp|'
esskar
 2004-01-28 06:52
#96411 #96411
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
was ich auf dem letzten Deutschen Perl Workshop gelernt hab, ist, benutz die Module und nicht die commandozeile...
also wäre doch Net::FTP sinnvoll!

[edit]
Mist...shellscripte....
[/edit]\n\n

<!--EDIT|esskar|1075265579-->
<< >> 10 Einträge, 1 Seite



View all threads created 2003-12-09 22:14.