it-swarm.com.de

Wie führe ich FTP-Befehle in einer Zeile aus?

Folgendes mache ich, wenn ich mich bei einem FTP anmelde:

ftp user:[email protected]
ftp: user:[email protected]: Unknown Host
ftp> echo HELLO WORLD!
ftp> quit

Ich möchte einen einzeiligen FTP-Befehl ausführen ...

ftp user:[email protected] -command "echo HELLO WORLD"

oder

"echo HELLO WORLD" | ftp user:[email protected] 

Ähnliches ... als Teil eines Skripts, das ich zu erstellen versuche. Es wird nichts übertragen, ich muss nur einige Anweisungen wiederholen, und dies ist der einfachste Weg, den ich gefunden habe, um dies zwischen zwei meiner Systeme zu tun.

18
WernerCD

Das ist wirklich eher eine Aufgabe für SSH (wie andere darauf hingewiesen haben), aber wenn Sie entschlossen sind, ftp zu verwenden, versuchen Sie lftp . Es ist frei verfügbar für alle derzeit unterstützten Versionen von Ubuntu. Sie können es mit dem Befehl Sudo apt install lftp installieren.

lftp -u username,password -e "your command;quit" ftp.site.com

lftp dokumentiert einen Schalter -c, der den Befehl ausführt und dann beendet, der jedoch in den meisten Distributionen fehlerhaft zu sein scheint. -e hält Sie in Verbindung, es sei denn, Sie geben quit aus.

20
charlesbridge

Ich habe diesen Thread gefunden, als ich nach einer Möglichkeit gesucht habe, mit einem einzelnen FTP-Befehl eine Dateiübertragung von diesem Computer zum FTP-Server auszuführen. Hier ist, wie:

Erstellen Sie eine Datei mit den darin enthaltenen FTP-Befehlen: (nennen Sie sie 'ftpcommands.txt')

 open YourFtpServer.com
 user YourUserName YourPassword
 put localfilename remotefilename
 bye

Führen Sie dann den Befehl ftp aus und geben Sie die Datei ein:

 ftp -n < ftpcommands.txt

Die Option -n verhindert, dass FTP versucht, sich automatisch anzumelden, wenn Sie den Befehl 'open' erhalten.

Hoffe das hilft jemandem. Ich konnte nichts online finden, was diese Lösung war, also musste ich es selbst herausfinden.

18
Jack

Sie können FTP nicht für die Remote-Ausführung von Befehlen verwenden. Es steht für File Transfer Protocol. Was Sie tatsächlich brauchen, ist SSH.

Alles, was Sie tun müssen, ist, das Paket ssh auf beiden Computern zu installieren und dann diese Anleitung zu befolgen, um passwortlose Anmeldungen einzurichten.

Und jetzt, wie man es nennt:

ssh [email protected] echo "Hello World\!"

Zum Beispiel tue ich es mir selbst an:

[email protected]:~$ ssh [email protected] echo "Hello World\!"
Hello World!
2
nickguletskii

Ergänzen Sie die @ charlesbridge-Antwort, indem Sie Folgendes in Ihre ~/.bashrc-Datei aufnehmen:

alias yoursite="lftp -u <username> -e \"<commandA;commandB>\" yoursite.com"

Quelle der Datei:

source ~/.bashrc

Verwenden Sie nun den Alias ​​"yoursite", um sich anzumelden und so viele Befehle auszuführen, wie Sie möchten.

1
Alan

Installieren Sie die Busybox mit:

apt-get install busybox

busybox kann sowohl unter Linux als auch unter einem eingebetteten System ausgeführt werden. Verwenden Sie dann ftpget und ftpput

busybox ftpput -u USER -p PASSWD URL_FTPSERVER FILE_U_WANT

busybox ftpget -u USER -p PASSWD URL_FTPSERVER FILE_U_WANT
0
user2328368