Ich möchte lftp -c
eine komplette Sitzung auf einmal durchführen (da ich dies später von einem Skript aus starten werde) und das habe ich auch geschafft, -e
aber dadurch bleibt mir natürlich die interaktive Sitzung, die ich nicht will.
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.
Ich verstehe allerdings nicht, wie ich meine Befehle/Interaktionen korrekt 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 der Ausführung des Befehls beenden;
lftp -c "open -u user,pass ftpsite.com" || put -O "remote/dir/ /local/file.txt"
schreit mich einfach an, oder eigentlich jede Kombination von Zitaten, die ich ausprobiert habe ( ||
oder &&
egal)
Antwort1
$ lftp -c "open -u user,pass ftpsite.com; put -O remote/dir/ /local/file.txt"
Sollte es tun.
/etc/lftp.conf
Wenn dies nicht funktioniert, versuchen Sie , die folgenden Zeilen hinzuzufügen :
set ftp:ssl-protect-data true
set ftp:ssl-force true
set ftp:ssl-auth TLS
set ssl:verify-certificate no
Antwort2
lftp -e "put -O remote/dir/ /local/file.txt; bye" -u user,pass ftpsite.com
Antwort3
lftp -e "put -O remote/dir/ /local/file.txt; bye" ftp.yourhost.com
und legen Sie Ihre Anmeldeinformationen unter ~/.netrc ab, wie
machine ftp.yourhost.com login your_username password your_password
Das Eingeben von Passwörtern in die Befehlszeile ist absolut nicht möglich, da diese neben dem Bash-Verlauf auch beim Verwenden von ps -aux während des Uploads lesbar sind.