【问题标题】:Cronjob logrotate not executingCronjob logrotate 未执行
【发布时间】:2019-04-14 18:34:01
【问题描述】:

我正在尝试每天执行一次 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”访问权限。

【问题讨论】:

  • 尝试将 logrotate.conf 文件更改为 /var/lib/mysql/queries.log { daily size 1k copytruncate rotate 4 }
  • 我如何测试这是否可行?我应该等明天还是有其他方法?
  • 每天更改为每小时,看看这是否有效,请参阅 logrotate.conf 的手册页。
  • 非常感谢!会及时通知您:)
  • 它不工作:(

标签: linux logging cron logrotate


【解决方案1】:

您提出这个问题的方式可能是您没有收到更多回复的原因。

首先,您描述的 /etc/cron.daily/logrotate 脚本是默认的 logrotate 旋转脚本,安装 logrotate 时它应该已经存在。为什么你必须把它放在那里,我不知道,但这听起来像是你的 logrotate 或 cron 设置不正确。 文件是否可执行?日志和 conf 上的可执行位并不重要,它们内部没有可执行代码。

其次,/etc/logrotate.conf 应该是 logrotate 的 base 架构,在该文件中的“include”参数指定的任何其他目录之前解析“默认”(这里也可能有其他特定日志的模式)。如果您没有正确设置此文件,则不会有可供 logrotate 使用的基本模式。 您需要向我们展示该文件的完整内容。您是否尝试过使用 -d 标志调试 logrotate 的执行?

三、什么是/etc/logrotatetest.conf?你提到它一次,但没有说它是什么,而是说它有效。我们应该怎么知道它的任何事情?发布或描述与原始 .conf 文件相关的内容。

第四,你是如何使用 cronjobs 的?是否涉及 anacron?您直接将问题与 cron 联系起来,但没有向我们提供有关您如何设置 cron 的信息。

如果您想认真回答这个问题,我会返回并进行一些编辑,因为此时可以帮助的人在这里几乎没有什么可做的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-25
    • 2016-02-02
    • 1970-01-01
    • 2019-09-13
    • 2012-08-07
    • 2015-11-30
    • 1970-01-01
    相关资源
    最近更新 更多