每日cron作业没有运行

快速概述:我有一个脚本,每天将我的源代码存储库从SVN备份到tarball中。 我已经测试了脚本,只要我将其作为sudo运行,它就能很好地工作,因为输出目录的所有权。

所以问题是我想每天运行它,所以我在/etc/cron.daily目录中放了一个链接。 以下是目录的内容。

thom@spenser:/etc/cron.daily$ ls -l total 60 -rwxr-xr-x 1 root root 189 2011-09-14 02:21 apport -rwxr-xr-x 1 root root 15535 2011-10-06 11:30 apt -rwxr-xr-x 1 root root 314 2011-08-08 16:57 aptitude lrwxrwxrwx 1 root root 24 2012-02-28 11:05 backup -> /usr/local/bin/backup.sh -rwxr-xr-x 1 root root 502 2011-06-08 11:48 bsdmainutils -rwxr-xr-x 1 root root 256 2011-10-06 04:04 dpkg -rwxr-xr-x 1 root root 372 2011-10-04 16:50 logrotate -rwxr-xr-x 1 root root 1353 2011-07-27 07:17 man-db -rwxr-xr-x 1 root root 606 2011-08-17 09:16 mlocate -rwxr-xr-x 1 root root 249 2011-06-24 05:36 passwd -rwxr-xr-x 1 root root 2417 2011-07-01 17:25 popularity-contest -rwxr-xr-x 1 root root 383 2011-09-30 15:09 samba -rwxr-xr-x 1 root root 3594 2011-09-19 20:07 standard thom@spenser:/etc/cron.daily$ 

问题是它根本就不会运行。 以下是该脚本的权限:

 thom@spenser:/etc/cron.daily$ ls -l /usr/local/bin/backup.sh -rwxr-xr-x 1 root root 260 2012-02-28 11:03 /usr/local/bin/backup.sh 

想法?

试过这个

 run-parts --test /etc/cron.daily 

发现我的文件update.ubuntu没有出现。 还注意到我的文件有一个扩展名(在其中有一个点)。

解决这个问题的步骤。

  1. update.ubuntu重命名为update-ubuntu
  2. 现在再次run-parts --test /etc/cron.daily ,这次我的文件出现了!

可能是以下几种情况之一:

根路径:

根据正在运行的命令,您可能需要通过将以下行放在其crontab文件的顶部来扩展root用户PATH变量:

PATH = / usr / sbin目录:在/ usr / bin中:/ sbin目录:/ bin中

src: https : //help.ubuntu.com/community/CronHowto

或者只使用脚本中每个命令的完整路径:例如/bin/ls而不是ls 。 (在路径的命令行中)。

这里报告的文件名中的点有一个奇怪的错误 。 可能会扩展到您链接到的文件,尽管这似乎不太可能。

您是否保存备份文件的输出? 在第一行放置这样的东西,以帮助确定它是否完全没有运行或运行但在某些时候失败。

/bin/echo "Attempting to run backup" >> /path-to-home/backup.log

或者尝试直接将脚本添加到crontab文件:

 sudo -i crontab -e [add the next line to the file, then save and exit] 33 15 * * * /usr/local/bin/backup.sh 

如果机器开启,将每天15:30运行。 使用* * * * *测试每分钟运行一次,直到它运行起来。

给你的系统日志写一下这些消息;

 crond: (*system*) BAD FILE MODE 

在644),文件需要被限制为(足够):

 chmod 0644 /etc/cron.d/my_crontab