lftp:ログインし、ファイルをリモートdirに入れ、単一のコマンドで終了します:適切な引用ヘルプ


17

私は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" ただ私に叫ぶ、または実際に私が試した(||または&&関係なく)引用符の組み合わせ


ただ追加します。quitまたは;さようなら:)
meso_2600

回答:


28
$ 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
パスワードに次のような文字が含まれている場合、この作業を行う方法はありますか' " : ;
ピート

最初のコンマの後にスペースがあったので、私はつまずきました。それがうまくいくとわかったら、
パトリック


1

lftp -e "put -O remote/dir/ /local/file.txt; bye" ftp.yourhost.com

資格情報を〜/ .netrcの下に置きます

machine ftp.yourhost.com login your_username password your_password

アップロード中にps -auxを使用する場合でもパスワードを読み取ることができるため、cliにパスワードを入力することは絶対にありません。bash履歴の横にもあります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.