ホストにアクセスできない場合のRSYNCファイルのスキップ

ホストにアクセスできない場合のRSYNCファイルのスキップ

IPリストがあり、複数のIPアドレスでrsyncコマンドを実行します。

ただし、ファイルの特定のIPアドレスがオフラインの場合、次のエラーコードが表示されます。

rsync: connection unexpectedly closed (0 bytes received so far) 
[sender]
rsync error: unexplained error (code 255) at io.c(226) [sender=3.1.1]

オフラインでIPをスキップし、残りのIPに対して実行または試行し、続行するときにタイムアウトを設定する方法はありますか?

ベストアンサー1

使用可能であることを確認し、rsync成功した場合にのみコマンドを実行します。 (これはping成功がリモートログインと同じであると仮定しますrsync。すべての場合に当てはまるとは限りませんが、多くの場合に適用できます。)

remote=192.168.1.1
ping -c1 -w3 -q "$remote" && rsync -avP src/ "$remote:dst"

このフラグはping最大3秒待つように指示しますが、応答が受信されると続行します。

タイムアウトパラメータもありますがrsync(マンページ、検索を参照timeout)、私の経験では、これらのパラメータは大容量ファイルを転送するときにトリガされる可能性があるため、特に便利ではないと思います。

おすすめ記事