PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : FTP-Upload mit einem Befehl



Pegasus87
30.06.05, 16:16
Hallo,

ich suche ein FTP Client, mit dem ich über einen shell-script eine Datei auf einen http-server laden kann. Bei dem Programm ftp muss man ja immer das Passwort selber eingeben, man kann nicht mit user:passwort@host connecten.

Hätte jemand ne Idee, wie ich mit einem Script eine Datei automatisch raufladen kann?

Danke!

Der Untergeher
30.06.05, 16:51
...suche ein FTP Client...Datei auf einen http-server laden kann ...
Hi,
dann sollte auf der Maschine aber auch ein ftp-server laufen (ich nehmen mal an das ist so).


-u url file
Upload files on the command line to url

wenn Du noch kompliziertere Sachen vor hast: man kann jedes Programm mit Komandozeileninterface über "expect" fernsteuern.

Grüße
Untergeher

Pegasus87
30.06.05, 17:17
Ja klar läuft ein FTP, ist ein ganz normaler Webseiten Server.

Also das mit dem Upload mag ja funktionieren, hab ich noch nicht ausprobiert. Aber was ich will, ist, dass man bloß das Script ausführen muss und dann die Datei auf den Server geladen wird. Was genau meinst du mit dem expect? Ist das ein bash Befehl?

Jigsore
30.06.05, 17:57
Einfach mal mit den Programmen ftp und wenns ein wenig anspruchsvoller sein soll, lftp beschäftigen.
Mit beiden ist automatischer upload problemlos möglich, wobei lftp wesentlich flexibler und optionsreicher ist.

Pegasus87
30.06.05, 18:05
An ftp kann man z.b. gar keine userdaten übergeben, nicht so super.

Der Untergeher
30.06.05, 18:07
Hmm, folgendes Skript tut bei mir genau das was Du beschrieben hast - einfach die Datei hochladen.

#!/bin/bash
ftp -u ftp://pegasus:pegasus_ihm_sein_password@ftpserver.de/ $1
(aufruf durch skript.sh datei) Oder raff ich nicht was Du willst?
Zu expect: ja das ist ein Befehl, für deine Zwecke (wenns wirklich nur um den einen upload geht) aber wohl unnötig kompliziert - bei Interesse "man expect" oder SuFu.

Pegasus87
30.06.05, 18:25
ftp nimmt die option -u nicht an. mach das jetzt mit lftp, damit gehts.

Jigsore
30.06.05, 18:28
An ftp kann man z.b. gar keine userdaten übergeben, nicht so super.

man ftp


user user-name [password] [account]
Identify yourself to the remote FTP server.



! [command [args]]
Invoke an interactive shell on the local machine.


Immer diese lügenden manpages.

pfleidi85
30.06.05, 18:34
lftp - i love it!
Das musste mal gesagt werden.

Der Untergeher
30.06.05, 18:37
ftp nimmt die option -u nicht an. mach das jetzt mit lftp, damit gehts.
Das is ja man putzig :ugly:. Woher kommt denn Dein ftp - also aus welcher Distribution?
edit: Da gab's noch was ich hab's gewusst und nu is es mir auch wieder eingefallen: ncftpput

linuxazubi
30.06.05, 18:39
also ich treibe es täglich ,
manchmal sogar mehrmals
mit lftp. :cool: :cool:

Pegasus87
30.06.05, 20:22
Das is ja man putzig :ugly:. Woher kommt denn Dein ftp - also aus welcher Distribution?
edit: Da gab's noch was ich hab's gewusst und nu is es mir auch wieder eingefallen: ncftpput
Gentoo!!

ftp -u user
ftp: u: unknown option

Is halt so, habs mit lftp nun aber hinbekommen.

D-Generated
01.07.05, 13:04
lukemftp (eigentlich netbsd, gibts aber auch für linux) kann das auch

MiGo
01.07.05, 15:49
Was du suchst, ist die Datei ~/.netrc (->man netrc). Darin kannst du Benutzernamen und Passwörter für ftp-sites hinterlegen. Das sieht dann in etwa so aus:
[ je@cthulhu] ~ (1,5G free) % cat .netrc
machine localhost
login ftpuser
password sicheristsicher *)

Der Befehl "ftp" weiss dann automatisch, welchen Namen/Pass er bei "ftp localhost" nehmen muss.

MiGo




*)echtes Passwort ist der Redaktion bekannt

pitu
01.07.05, 15:56
ncftp

ncftp hat extra programme fuer die verwendung in shellscripten:

-> ncftpput
-> ncftpget