
スクリプトを使用して2つのステップでファイルをダウンロードします。
- まず、.zipファイルを使用してサーバーからホストコンピュータにファイルリストを含むファイルをダウンロードしました
rsync
。 - 次に、
rsync
リストにある実際のファイル(かなり多い)をサーバーからホストコンピューターにダウンロードします。
問題は、スクリプトが定期的にパスワードを要求することです。つまり、サーバーが自分のアカウントのパスワードを要求し続けるということです。ファイルは問題なくダウンロードされ、サーバーからリスト内の各ファイルのダウンロード中にパスワードを要求したため、forループが問題を引き起こしたと推測されます。
私が正しい場合、スクリプトがパスワードを一度だけ要求することを可能にする解決策は何ですか?間違っていたら訂正してください。
メモ:ただし、キーベースの認証は許可されていません。
#!/bin/bash
rsync --partial -z --remove-source-files server:~/list ~/.
for i in $(cat ~/list)
do
rsync --partial -z server:/some/location/$i ~/someplace/$i
done
答え1
あなたの理論は私にぴったりです。 forループを介して呼び出されるたびにrsync
サーバーに再接続され、メッセージが再表示されます。
~/list
ファイルを繰り返す代わりに、for
このリストをuseスイッチに直接供給できます。rsync
--files-from=
はい
$ rsync --partial -z --files-from=/some/list server:/some/location/ ~/someplace/