我有一个简单的脚本来从远程服务器中提取数据,因为进程使用以下方法生成数据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 中是否有一种简洁的方法来做到这一点?