lftp: login, Datei in Remote-Verzeichnis ablegen und mit einem einzigen Befehl beenden: Richtige Zitierhilfe

17

Ich möchte verwenden lftp -c, um eine ganze Sitzung auf einmal durchzuführen (da ich dies später aus einem Skript heraus starten werde), und ich habe es mit geschafft, -eaber dadurch verbleibe ich bei der interaktiven Sitzung, die ich nicht möchte.

Manuelle Zustände

-c commands
          Execute the given commands and exit. Commands can be separated with a semicolon,  `&&'
          or  `||'.  Remember to quote the commands argument properly in the shell.  This option
          must be used alone without other arguments.

Aber ich verstehe nicht, wie ich meine Befehle / Interaktionen richtig zitieren und aneinanderreihen soll.

lftp -e "put -O remote/dir/ /local/file.txt" -u user,pass ftpsite.com funktioniert hervorragend. Aber ich möchte nach dem Ausführen des Befehls beenden;

lftp -c "open -u user,pass ftpsite.com" || put -O "remote/dir/ /local/file.txt" schreit mich einfach an oder in der Tat eine Kombination von Zitaten, die ich versucht habe ( ||oder &&unabhängig davon)

Recct
quelle
einfach hinzufügen; beenden oder; tschüss :)
meso_2600

Antworten:

28
$ lftp -c "open -u user,pass ftpsite.com; put -O remote/dir/ /local/file.txt" 

Sollte es tun.

Wenn dies nicht funktioniert, versuchen Sie, /etc/lftp.confdie folgenden Zeilen zu ergänzen:

set ftp:ssl-protect-data true
set ftp:ssl-force true
set ftp:ssl-auth TLS
set ssl:verify-certificate no
Glenn Jackman
quelle
2
Gibt es sowieso zu machen, dass dies funktioniert, wenn das Passwort Zeichen enthält, wie' " : ;
Pete
Ich wurde gestolpert, weil ich nach dem ersten Komma ein Leerzeichen hatte, als ich herausfand, dass es großartig funktionierte
Patrick
10

lftp -e "put -O remote/dir/ /local/file.txt; bye" -u user,pass ftpsite.com

Mohnish
quelle
1

lftp -e "put -O remote/dir/ /local/file.txt; bye" ftp.yourhost.com

und legen Sie Ihre Anmeldeinformationen unter ~ / .netrc wie

machine ftp.yourhost.com login your_username password your_password

Das Einfügen von Passwörtern in die CLI ist absolut verboten, da diese sogar lesbar sind, wenn ps -aux während des Uploads verwendet wird. Neben dem Bash-Verlauf.

Eugen Mayer
quelle