スクリプトの実行中にWAN接続をランダムなポイントでリセットする安っぽいISPを扱っています。転送をこのリセット後も存続させて続行したいのですが、このスクリプトを手動で起動するのではなく、 cron /現在起動中。
以下に示すように、かなり基本的なスクリプトがあります。
rsync -rltv --progress --partial -e "ssh -i <key> -o ConnectTimeout=300" <remotedir> <localdir>
代わりにrsyncセクションにタイムアウトを入れるほうがいいですか?
例えば:
rsync -rltv --progress--partial --timeout=300 -e "ssh -i <key>" <remotedir> <localdir>
ありがとう!
ConnectTimeout
は、SSHがサーバーとの接続を確立しようとしている場合にのみ適用され、データ転送中のタイムアウトとは何の関係もありません。したがって、--timeout
オプションを使用して目的を実行する必要があります。
Rsyncを再実行してみてください。また、sshオプションなしで試してください。ネットワーク接続が失われたため、ジョブが失敗した可能性があります。 cronを介して2時間ごとに実行されているデータセンター間でファイルをコピーするrsyncジョブがあり、1日に約1回失敗します。