AWS Opsworks:logrotate 它会自动运行吗?
Posted
技术标签:
【中文标题】AWS Opsworks:logrotate 它会自动运行吗?【英文标题】:AWS Opsworks: logrotate it runs automatically? 【发布时间】:2016-05-11 21:52:21 【问题描述】:我已经配置了我自己的 logrotate(应用程序日志)和编辑(nginx 日志),所有这些都在食谱(厨师)中创建。我的问题是:logrotate 它会自动运行吗?
我问是因为我有日志大小不能超过 5MB 的配置,并且日志大小为 100MB。
显示 root 的 crontab:
crontab -l
no crontab for root
/etc/logrotate.conf
weekly
su root syslog
rotate 4
create
include /etc/logrotate.d
/var/log/wtmp
missingok
monthly
create 0664 root utmp
rotate 1
/var/log/btmp
missingok
monthly
create 0660 root utmp
rotate 1
【问题讨论】:
【参考方案1】:通常,logrotate 作为每日 cron 作业运行。您可以将size 5M
和daily
添加到您感兴趣的日志的logrotate 配置中。
在每日 logrotate 运行之间,日志有可能增长到超过 5M。这可以通过降低大小值和/或更频繁地运行 logrotate 来调整。
查看man logrotate
了解更多详情。
【讨论】:
【参考方案2】:如果您想在文件大小达到 5Mb 后立即旋转文件,只需将可执行文件放入 /etc/cron.hourly/
文件夹中:
#!/bin/sh
test -x /usr/sbin/logrotate || exit 0
/usr/sbin/logrotate /etc/logrotate.d/nginx
如果这还不够,您可以像这样进行 crontab 作业:
*/30 * * * * root logrotate /etc/logrotate.d/nginx
(每 30 分钟轮换一次)
【讨论】:
【参考方案3】:首先你在错误的地方搜索。 Logrotate 是 cron 日常工作的一部分。
cron作业在以下目录"/etc/cron.daily/logrotate"
可以运行以下命令强制运行logrotate
sudo logrotate -v -f /etc/logrotate.conf
如果您希望日志在达到 5mb 后进行轮换,您应该在脚本中添加 size
值。
你应该有这样的东西:
/var/log/mylogs
......
missingok
size=5M
create 0664 root utmp
rotate 3
这里是link to more details,介绍如何轻松设置 logrotate。
【讨论】:
以上是关于AWS Opsworks:logrotate 它会自动运行吗?的主要内容,如果未能解决你的问题,请参考以下文章
AWS+OpsWorks:如何使用 OpsWorks 启用 EC2 实例的详细监控
AWS OpsWorks - 无法使用 AWS OpsWorks 部署我的应用程序,尤其是无法成功迁移
是否可以在 AWS::OpsWorks::Instance 资源中使用 AWS::CloudFormation::Init 和元数据?