3

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

crontab -e我有-我是-:

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 确实在运行。

你有什么想法吗?权限还是时间?

4

3 回答 3

0

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

crontab 不起作用的原因

于 2012-07-03T13:40:17.730 回答
0

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

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

于 2012-07-03T13:36:17.157 回答
0

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

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

于 2012-07-03T13:38:52.863 回答