我正在尝试使logrotate每天执行一次。到目前为止,我尝试将其放入cron.daily:
/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0
我的logrotate.conf包含:
/var/lib/mysql/queries.log {
size 1k
copytruncate
rotate 4
}
当我尝试执行logrotate -f /etc/logrotatetest.conf
时,它可以工作。但每日cron不会执行。因此,我创建了一个包含上述代码的SH文件,然后由cronjob执行:* * * * * /home/rotate.sh 2>/home/rotate.log 1>&2
我做了* * * * *的测试,但没有用。
rotate.sh包含:logrotate -f /etc/logrotate.conf
我不知道为什么cronjob不执行它:(
PS。日志文件SH File和logrotate.conf具有'777'访问权限。
答案 0 :(得分:0)
您如何问这个问题可能是为什么您没有收到更多对此问题的答复。
首先,您描述的/etc/cron.daily/logrotate脚本是默认的logrotate旋转脚本,安装logrotate时该脚本应该已经存在。为什么不把它放在那里,我不知道,但是听起来好像您的logrotate或cron没有正确设置。 此文件可执行吗?日志和conf上的可执行位并不重要,它们内部没有可执行代码。
其次,/ etc / logrotate.conf应该是logrotate的 base 模式,该“ default”要在该文件中由“ include”参数指定的任何其他目录之前进行解析(这里也可能有其他特定日志的架构)。如果您没有正确设置此文件,将没有可供logrotate使用的基本架构。 您需要向我们显示该文件的完整内容。您是否尝试过使用-d标志调试logrotate的执行?
第三,什么是/etc/logrotatetest.conf?您只提到它一次而没有说它是什么,并说它可行。我们应该如何了解它呢?发表或描述与原始.conf文件有关的内容。
第四,您如何雇用cronjobs? an虫参与其中吗?您直接将问题与cron相关联,但是没有提供任何有关cron设置的信息。
如果您想对这个问题作一个认真的回答,我将回过头来进行一些编辑,因为在这一点上,可以帮助的人们在这里没有什么基础。