我开始通过 rsync 备份到远程服务器。一切运行良好,但 40 GB 需要时间,而且由于我获得动态 IP,它每天都会中断。所以每天早上醒来时我都会重新启动 rsync(如果我没忘记的话)。
我可以使用 cronjob,但我真的想在它停止后立即执行它。有办法吗?
答案1
#!/bin/bash
while true
do
echo "your action (e.g., rsync replacing this line)"
#If clean exit, stop running
if [[ $? == 0 ]]
then
break
fi
#speed throttling
sleep 10
done
答案2
是的,每当 rsync 或任何命令停止或以错误的方式中断时,它都会发出一个不等于 0 的信号(0 表示成功,否则表示错误)。
因此只需编写一个脚本,检查命令退出状态并将其保存在文件中。然后在 5 秒后继续检查该文件。只要存在状态变为非零,重新启动 rsync 并手动将退出状态设置为 0..继续下去。