我有一个 rsync 命令,可以进行各种复制:
0 0 * * * rsync -av --delete /media/VIDEOS/ /media/lacie1/backup/videos/
如果无法访问源(即:不在线/未安装),有没有办法停止 rsync 命令运行?
答案1
你可以尝试
0 0 * * * cd /media/VIDEOS/ && rsync -av --delete /media/VIDEOS/ /media/lacie1/backup/videos/
如果 cd 失败,则不会运行 rsync 命令,但如果源不存在,则应该运行。
如果你想让它悄无声息地失败
0 0 * * * [ -e /media/VIDEOS ] && rsync -av --delete /media/VIDEOS/ /media/lacie1/backup/videos/
答案2
这听起来就像您正在对您的台式计算机进行午夜备份,并且 cron 守护进程向您发送有关备份失败的垃圾邮件。
简单粗暴的解决方案就是让 cron 静音,可以通过两种方式实现:
0 0 * * * rsync .. > /dev/null 2>&1
这会将 stdout 和 stderr 重定向到 /dev/null。没有来自 cron 的邮件
另一个解决方案是使用 MAILTO 定义一个空电子邮件
MAILTO=root
0 0 * * * 脚本1
邮箱=
0 0 * * * rsync..
这也应该会使脚本静音。