lftp:登錄,將檔案放入遠端目錄並在單一命令中退出:正確引用幫助

lftp:登錄,將檔案放入遠端目錄並在單一命令中退出:正確引用幫助

我想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 歷史記錄之外。

相關內容