我试图每天执行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文件和logrotate.conf具有“777”访问权限。
你怎么问这个问题可能就是为什么你没有得到更多回应。
首先,您描述的/etc/cron.daily/logrotate脚本是默认的logrotate旋转脚本,它应该在安装logrotate时已存在。为什么你不得不把它放在那里,我不知道,但这听起来像你的logrotate或cron没有正确设置。这个文件可执行吗?日志和conf上的可执行位并不重要,它们内部没有可执行代码。
其次,/ etc / logrotate.conf应该是logrotate的基本模式,在该文件中的“include”参数指定的任何其他目录之前要解析的“default”(此处可能还有其他特定日志的模式) ,也)。如果您没有正确设置此文件,则无法使用logrotate的基本架构。您需要向我们展示该文件的完整内容。您是否尝试使用-d标志调试logrotate的执行?
三,什么是/etc/logrotatetest.conf?你提到它一次,不说它是什么,并说它有效。我们怎么知道它的一切?发布或描述与原始.conf文件相关的内容。
第四,你是如何使用cronjobs的?涉及到anacron吗?您直接将问题与cron联系起来,但后来没有告诉我们您如何设置cron。
如果你想对这个问题有一个认真的答案,我会回去做一些编辑,因为在这一点上,人们可以帮助在这里建立起来很少。