我想lftp -c
一次完成整個會話(因為我稍後會從腳本啟動它)並且我成功了,-e
但是 ofc 給我留下了我不想要的互動式會話。
手動狀態
-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.
但我不明白應該如何正確引用和串接我的命令/互動。
lftp -e "put -O remote/dir/ /local/file.txt" -u user,pass ftpsite.com
效果很好。但我想執行命令後退出;
lftp -c "open -u user,pass ftpsite.com" || put -O "remote/dir/ /local/file.txt"
只是對我大喊大叫,或者實際上是我嘗試過的任何引用的組合(||
或&&
無論如何)
答案1
$ lftp -c "open -u user,pass ftpsite.com; put -O remote/dir/ /local/file.txt"
應該這樣做。
如果這不起作用,請嘗試新增/etc/lftp.conf
以下行:
set ftp:ssl-protect-data true
set ftp:ssl-force true
set ftp:ssl-auth TLS
set ssl:verify-certificate no
答案2
lftp -e "put -O remote/dir/ /local/file.txt; bye" -u user,pass ftpsite.com
答案3
lftp -e "put -O remote/dir/ /local/file.txt; bye" ftp.yourhost.com
並將您的憑證放在 ~/.netrc 下,例如
machine ftp.yourhost.com login your_username password your_password
將密碼放入 cli 中是絕對不行的,因為在上傳過程中使用 ps -aux 時這些密碼甚至是可讀的…除了 bash 歷史記錄之外。