ubuntu - 试图了解如何配置单独的 logrotate 配置
问题描述
如果我误解了这些东西的工作原理,我深表歉意。
我试图设置我自己的 logrotate 每小时配置,这似乎没有在 cron 选项卡中生效。
我将在下面提供我的文件,如果有人能指出我所犯的错误,我将非常感激。
/etc/logrotate_hourly.d/upstart
/var/log/upstart/*.log {
hourly
copytruncate
missingok
size 1M
rotate 1
compress
notifempty
nocreate
}
/etc/logrotate_hourly.d/nginx
/var/log/nginx/*.log {
hourly
missingok
rotate 0
size 200M
compress
notifempty
sharedscripts
postrotate
[ ! -f /run/nginx.pid ] || kill -USR1 `cat /run/nginx.pid`
endscript
}
/etc/logrotate_hourly.conf
# see "man logrotate" for details
# rotate our custom log files hourly
hourly
# use the syslog group by default, since this is the owning group
# of /var/log/syslog.
su root syslog
# packages drop log rotation information into this directory
include /etc/logrotate_hourly.d
/etc/cron.hourly/logrotate
#!/bin/sh
# Clean non existent log file entries from status file
cd /var/lib/logrotate
test -e status || touch status
head -1 status > status.clean
sed 's/"//g' status | while read logfile date
do
[ -e "$logfile" ] && echo "\"$logfile\" $date"
done >> status.clean
mv status.clean status
test -x /usr/sbin/logrotate || exit 0
/usr/sbin/logrotate /etc/logrotate_hourly.conf
按预期运行以下工作:
sudo logrotate -f /etc/logrotate_hourly.conf
运行这也有效:
sudo /usr/sbin/logrotate /etc/logrotate_hourly.conf
但是 cron/hourly logrotate 似乎从未发生过。
你到处都读到有人说“你不需要重新启动服务,也不需要重新启动新的 logrotates 才能生效”。
我发现有人说他们在更改配置和重新启动方面取得了成功。是每个人都错了还是他很幸运?
我试图避免在我们为亚马逊的 aws 自动缩放构建图像时需要重新启动,因此它只是启动了一个快照。
解决方案
Hourly
对 logrotate 没有任何意义,它不是一个有效的指令。男人:
通常,logrotate 作为每日 cron 作业运行。它不会在一天内多次修改日志,除非该日志的标准基于日志的大小并且 logrotate 每天运行多次,或者除非使用了 -f 或 --force 选项。
我已经解释了如何在这里做这种事情。您的不同之处在于您不需要使用 -f 强制轮换,但您确实需要根据日志大小和仅其大小进行轮换。
推荐阅读
- sql-server - 使用 max(date) 多次出现数据时返回唯一的 SQL 行
- java - 可以在java中使用包装类交换两个数字而不创建任何其他类吗?
- ios - 两个 if 语句 + 和 else,一个 if 语句,一个 else if 和一个 else 之间的区别?
- regex - 为什么加号、减号、多重和除法正则表达式运算符也匹配小数?
- c# - Visul Studio 2017 错误“tp 编译内存中的项目失败”请使用语言版本 7.3 或更高版本
- angular - 根级别的 Angular 代理
- oracle - 如何从数据块中的项目文本中获取值并将其插入到另一个数据块的另一个项目文本中?pl/sql oracle forms 10g
- java - 如何阻止 JFrame/JPanel 自动格式化组件之间的距离?
- jquery - 包含数据的函数参数
- json.net - 覆盖 Newtonsoft.Json.JsonConverter 属性