所以我刚刚设置了我的全新 Ubuntu Server 18.04。我将主操作系统安装在 SSD 上,将第二个 HDD(主媒体驱动器)安装到 /media,将备份驱动器安装到 /mnt。我已将 /media 和 /mnt 设置为无需 sudo 权限即可写入。
我想要设置从 /media 到 /mnt 的每日 rsync 备份。
所以我跑了
sudo crontab -e
然后在文件底部我放了
0 22 * * * rsync -av --delete /media /mnt
我昨天下午 1 点左右执行了此操作,我认为它应该在晚上 10 点左右运行。我今天早上起床,但 cron 作业没有执行。有什么想法吗?
以下是期刊内容
Jan 19 21:17:01 grierserver CRON[23622]: pam_unix(cron:session): session closed for user root
Jan 19 22:17:01 grierserver CRON[26812]: pam_unix(cron:session): session opened for user root by (uid=0)
Jan 19 22:17:01 grierserver CRON[26813]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Jan 19 22:17:01 grierserver CRON[26812]: pam_unix(cron:session): session closed for user root
答案1
通过执行sudo crontab -e
,您编辑root
了crontab
(我猜是为了确保您的备份按 执行root
)。
但是,root
有一个s 没有的 crontab
字段。$USER
crontab
root
crontab
在第6个字段指定要使用的USERID,其余参数移过去。
请参阅man 5 crontab
部分EXAMPLE SYSTEM CRON FILE
。
您应该指定(root
仅在 的 crontab 中)
0 22 * * * root rsync -av --delete /media /mnt
^^^^
但是,更好的方法是将rsync
命令包装在bash
脚本中(使用完整的bash
语法,易于更改、测试、添加调试内容......)并从中调用该脚本cron
。
答案2
好的,看起来它正在工作。似乎没有在 10 时运行,但确实有效。我注意到,通过将此代码添加到没有 sudo 的 crontab 中,它可以正常工作。
我还有一个问题,当我查看 rsync 正在同步的文件夹并运行“ls”命令时,为什么正在同步的新文件显示为紫色?这种颜色只是帮助我找到它们,还是另有含义?