Cron没有执行。脚本工作正常

时间:2012-07-03 13:31:29

标签: shell unix cron

我有一个压缩日志文件的crontab。

crontab -e我有<我> root - :

5 3 * * 6 find /toMyLogs -name "access*" -a ! -name '*.bz2' -ctime +7 -exec bzip2 -zv {} \;
35 3 * * 6 find /toMyLogs -name "error*" -a ! -name '*.bz2' -ctime +7 -exec bzip2 -zv {} \;

日志的一个例子是:

$ ls -la /toMyLogs
-rw-r--r--   1 root     root       33317 Jul  2 19:04 error_1.log.2012-07-02
-rw-r--r--   1 root     root       12928 Jul  3 08:55 error_2.log.2012-07-03

如果我手动执行命令,则为:

find /toMyLogs -name "access*" -a ! -name '*.bz2' -ctime +7 -exec bzip2 -zv {} \;

它有效,但在cron中不起作用。我用示例文件进行了一些小测试 - 不是日志 - 并运行了cron。 有效。所以,cron肯定正在运行。

你知道最新情况吗?权限还是时间?

3 个答案:

答案 0 :(得分:1)

我不知道问题的根源。但是,不要将一些长命令转移到可能有帮助的单独脚本中。

添加 cron我遇到了这样的问题 - 理由是绝对路径和相对路径不匹配。但在这里你绝对是......

答案 1 :(得分:1)

运行cron时,环境设置不同。 cron使用的PATH很可能找不到bzip2程序。

Reasons why crontab does not work

答案 2 :(得分:0)

您安排脚本每周运行一次,每周六(每周的第6天)在3:05和3:35运行。

语法看起来不错。可能的问题是执行 bzip2 。确保您的crontab PATH包含程序的路径。