lftp:ログインし、リモートディレクトリにファイルを配置してから単一のコマンドで終了します。ヘルプを正しく引用してください。

lftp:ログインし、リモートディレクトリにファイルを配置してから単一のコマンドで終了します。ヘルプを正しく引用してください。

私は一度にセッション全体を実行したかったのでlftp -c(後でスクリプトを介して起動するので)成功しましたが、-eしばしば望ましくない対話型セッションが残りました。

手動状態

-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

bashの履歴を除いて、アップロード中にps -auxを使用すると読み取ることができないため、cliにパスワードを入力することは絶対禁物です。

関連情報