我有一个压缩日志文件的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肯定正在运行。
你知道最新情况吗?权限还是时间?
答案 0 :(得分:1)
我不知道问题的根源。但是,不要将一些长命令转移到可能有帮助的单独脚本中。
添加强>
cron
我遇到了这样的问题 - 理由是绝对路径和相对路径不匹配。但在这里你绝对是......
答案 1 :(得分:1)
运行cron时,环境设置不同。 cron使用的PATH很可能找不到bzip2程序。
答案 2 :(得分:0)
您安排脚本每周运行一次,每周六(每周的第6天)在3:05和3:35运行。
语法看起来不错。可能的问题是执行 bzip2 。确保您的crontab PATH包含程序的路径。