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, -e
aber 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)
Antworten:
Sollte es tun.
Wenn dies nicht funktioniert, versuchen Sie,
/etc/lftp.conf
die folgenden Zeilen zu ergänzen:quelle
' " : ;
lftp -e "put -O remote/dir/ /local/file.txt; bye" -u user,pass ftpsite.com
quelle
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.
quelle