Verbindung zu FTP über die Linux-Befehlszeile
Ich muss Dateien über FTP von der Befehlszeile hochladen. Ich habe diese Informationen: eine URL, einen Benutzernamen, ein Passwort, einen Port und die Tatsache, dass ich den passiven Modus verwenden soll.
Wie lade ich eine Datei mit diesen Informationen hoch?
Beachten Sie, dass ich dies über ein Skript tun muss, damit ich diese Informationen automatisch eingeben kann.
3 answers
Es gibt viele CLI (command line) - clients da draußen. Am häufigsten ist einfach ftp
. Du hast <host>
, <port>
, <username>
, <pass>
und "passiver Modus". Mit ftp
sollten Sie tun:
ftp -p <host> <port>
-p
schalter bedeutet "passiven Modus verwenden". Dann werden Sie nach Ihrem Benutzernamen und Passwort gefragt. Nach erfolgreicher Anmeldung (Server informiert Sie darüber) können Sie einige Befehle geben. Geben Sie help
ein und drücken Sie "enter", um die Liste der verfügbaren Befehle abzurufen. Sie können z.B. cd
, ls
, mkdir
ftp-Befehle ändern Sie das Arbeitsverzeichnis (auf dem Server), listen Sie dessen Inhalt auf und erstellen Sie ein neues Verzeichnis. Wenn Sie sich vor dem Ausführen von ftp
im selben Verzeichnis wie die Dateien befanden, die Sie senden möchten, können Sie den Befehl put
oder mput
verwenden, um die tatsächliche Übertragung zu starten. Der erste Befehl sendet eine Datei, der zweite mehrere Dateien mit Globbing (z. B. sendet mput *pdf
alle PDF-Dateien im aktuellen Verzeichnis). Um einfache Hilfe zum Befehl zu erhalten, können Sie help <command>
in der ftp
- App verwenden. Ich würde sagen, das reicht für den Anfang. Für den rest verwenden man ftp
oder info ftp
. Um die FTP-Sitzung zu beenden, geben Sie bye
ein. Es gibt andere Möglichkeiten, das zu tun, aber ich denke, dieser ist einfach elegant :).
Was die anderen Kunden betrifft, wurden hier einige interessante Möglichkeiten aufgezeigt, aber ich persönlich verwende lftp
. Es ist einfach solide, gut, flexibel und einfach zu bedienen FTP-Client. Wenn Sie einen visuelleren Ansatz bevorzugen, während Sie sich noch unter der Befehlszeile befinden, können Sie sich für mc
oder "Midnight Command"entscheiden. Es ist allgemeine Anwendung Datei-Manager mit Norton Commander Paradigma, kann aber auch wird für den Zugriff auf FTP-Server verwendet.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2011-12-15 00:37:03
Würde ich sehr empfehlen ncftp's ncftpput. Es ist sehr scriptable und ist praktisch für diese Art der Sache.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2016-05-16 12:22:26
Kein Problem auf diesem. Es gibt viele Beispiele auf Gist . Gehen Sie einfach zu dieser Site und suchen Sie nach "FTP Script".
Hier ist eine, die ich gefunden habe:
#!/bin/sh
HOST='some.ftp.server'
USER='myuser'
PASSWD='mypass'
FILE='myfile'
ftp -n $HOST <<END_SCRIPT
user ${USER} ${PASSWD}
cd /path/to/something
get $FILE
quit
END_SCRIPT
exit 0
Außerdem ist Die Befehlszeile Foo eine weitere gute Seite, auf der ich dieses verrückte Beispiel für eine FTP-ish-Dateiübertragung gefunden habe:
Create a file server, listening in port 7000:
while true; do nc -l 7000 | tar -xvf -; done
Then, at client side:
tar c myfile | nc localhost 7000 ##Send file myfile to server
tar c mydir | nc localhost 7000 ## Send directory mydir to server
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2011-12-14 23:08:59