首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为Rails应用程序设置logrotate

为Rails应用程序设置logrotate
EN

Stack Overflow用户
提问于 2013-02-27 08:08:59
回答 2查看 574关注 0票数 0

几天来,我一直在网上搜索如何将我的服务器设置为自动轮换我团队最近发布的Rails应用程序的日志。我已经尽可能地让自己能够运行sudo logrotate -f /etc/logrotate.conf,但当然,谁会一直这样做呢?

应用程序日志的配置文件的内容(我想添加更多,但当我还不能旋转一个文件时,看不到需要添加):

代码语言:javascript
复制
/path/to/app/production.log {
  daily
  missingok
  rotate 7
  compress
  delaycompress
  notifempty
  copytruncate
}

我已经验证了/etc/logrotate.conf文件包含下面这一行:

代码语言:javascript
复制
include /etc/logrotate.d

但这是我不太确定该去哪里的地方。我发现了许多不同的方法,实际上自动化了这个过程,但似乎没有一个有效。根据记录,我已经验证了服务器是否安装了anacron命令,但我不知道如何为自己的任何进程配置它。此外,根用户在服务器上还没有crontab (我们还不需要它),我不确定使用它是否比使用/etc/crontab更好。在/etc/crontab文件中,我添加了:

代码语言:javascript
复制
15 0 * * *   root    cd / && run-parts --report /etc/cron.daily

但我见过其他人用

代码语言:javascript
复制
15 0 * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )

后者是更好的选择吗?为什么?如果是这样,我如何确保它能正常工作?同样,我不知道如何为手头的任务设置anacron。

最后,下面是/etc/cron.daily/logrotate文件的前面的内容:

代码语言:javascript
复制
/usr/sbin/logrotate /etc/logrotate.conf >/dev/null 2>&1
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
  /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0

在一些研究之后,我将其替换为这个(我理解得更好一些):

代码语言:javascript
复制
test -x /usr/sbin/logrotate || exit 0
/usr/sbin/logrotate /etc/logrotate.conf

谁能给我解释一下第一个配置是做什么的,这两个选项中哪一个更好?我不确定为什么必须强制这个进程才能让它运行。也许/etc/crontab不像我想的那样工作?

EN

回答 2

Stack Overflow用户

发布于 2013-02-27 08:46:28

是后者更好的选择吗?为什么?

使用cron命令,只有当计算机在午夜(00:15)开机时,/etc/cron.daily/*才会运行。如果你在晚上关掉它,就像有些人那样,它永远不会运行。

解决这个问题,并在当天晚些时候启动计算机时运行命令,可以使用anacron。与桌面相比,这显然对服务器没有那么有用。

当然,您不希望同时使用这两种方法,因为这将使作业一天运行两次。因此,最脆弱的机制cron只有在未安装anacron的情况下才会运行作业,从而导致anacron。

这就是Debian和Ubuntu默认使用其test -x /usr/sbin/anacron || crontab作业前缀所做的事情。

所有服务器发行版都将正确设置logrotate,因此您不应该修改crontab、anacrontab或/etc/cron.daily/logrotate。您唯一需要做的就是向/etc/logrotate.d添加一个文件。

票数 1
EN

Stack Overflow用户

发布于 2013-02-27 09:54:25

尝试将其放入/etc/crontab文件中:-*/15 ***根测试-x /usr/lib/cron/run-crons && /usr/lib/cron/run-crons >/dev/null 2>&1

这对我很管用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15101894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档