プロセスが次を使用してデータを生成するときに、リモートサーバーからデータをプルする簡単なスクリプトがありますrsync
。
while :
do
rsync -avz --remove-source-files -e ssh me@remote:path/to/foo* ./
rsync -avz --remove-source-files -e ssh me@remote:path/to/bar* ./
rsync -avz --remove-source-files -e ssh me@remote:path/to/baz* ./
rsync -avz --remove-source-files -e ssh me@remote:path/to/qux* ./
sleep 900 #wait 15 minutes, try again
done
ファイルがない場合は、rsync
終了ステータス 12 を返します (明らかに)。上記の呼び出しでデータが見つからない場合rsync
は、ループから抜けたいと思います (データを生成するプロセスはおそらく終了しました)。混乱を避けるために、プロセスの 1 つでも成功した場合にループから抜け出したくありません。rsync
bashでそれを行う簡潔な方法はありますか?