我有以下配置用于对应用程序日志进行日志轮转。
/opt/tomcat/logs/app-web.txt {
copytruncate
daily
size 500M
compress
delaycompress
rotate 0
missingok
notifempty
}
/opt/tomcat/logs has a lot of files
app-web.txt
app-web.txt.1
app-web.txt.2
app-web.txt.3
app-web.txt.4
..
..
..
..
..
app-web.txt.100
我已将配置放在 /etc/logrotate.d/app-web 中。我正在运行 CentOs 6.6
我只想有 9 个文件,例如 aap-web.txt 和 app-web.txt.1.gz 到 app-web.txt.9.gz
/opt/tomcat/logs 里面的每个文件大小为 498 M,每 1 小时 30 分钟创建一次。
$cat /var/lib/logrotate.status
显示我手动运行的时间。它不会通过 cron 自动运行。
答案1
rotate 0
来自手册页
旋转计数 日志文件会轮换 count 次,然后才会被移除或邮寄到 mail 命令中指定的地址。如果 count 为 0,则会移除旧版本,而不会轮换。
你可能想要
rotate 9
至于为什么你会看到所有其他文件,我猜是它们很旧(检查日期/时间)并且 logrotate 没有考虑它们,因为它们与名称不匹配应用程序-web.txt。我只需将相关时间段内需要的文件存档,然后删除它们。然后我希望 logrotate 能够按预期开始管理文件。
请注意,通常 cron 配置为每天仅运行一次 logrotate ( /etc/cron.dailylogrotate)。如果您想根据大小轮换文件,并且达到该大小的频率超过每天一次,则需要更频繁地运行 logrotate。