设置 rsync cron 作业,不执行

设置 rsync cron 作业,不执行

所以我刚刚设置了我的全新 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,您编辑rootcrontab(我猜是为了确保您的备份按 执行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”命令时,为什么正在同步的新文件显示为紫色?这种颜色只是帮助我找到它们,还是另有含义?

相关内容