这是/etc/logrotate.d/mylog下的logrotate配置文件
/var/www/www.mysite.com/logs/* {
daily
rotate 365
compress
delaycompress
missingok
notifempty
create 0664 apache apache
}
我昨天下午4点将其设置为今天,今天上午10点我没有看到任何压缩文件。
我尝试使用-d和-f选项进行logrotate
使用-d选项,我得到了这个输出
reading config file mysite
reading config info for /var/www/www.mysite.com/logs/*
Handling 1 logs
rotating pattern: /var/www/www.mysite.com/logs/* after 1 days (365 rotations)
empty log files are not rotated, old logs are removed
considering log/var/www/www.mysite.com/logs/access-2018-08-08.log
log does not need rotating
使用-f选项,没有任何显示。
但是我注意到它在每个日志中都添加了.1后缀。
请任何人解释这是什么奇怪的行为?
答案 0 :(得分:1)
Logrotate没有内置的调度系统。
如果您想手动清理一次日志,请确保可以手动运行它:
logrotate /etc/logrotate.d/mylog
如果您检查logrotate手册页中的-f行为:
-f, --force
Tells logrotate to force the rotation, even if it doesn't think this is necessary.
Sometimes this is useful after adding new entries to a logrotate config file,
or if old log files have been removed by hand, as the new files will be created,
and logging will continue correctly.
-d, --debug
Turns on debug mode and implies -v. In debug mode, no changes will be made to
the logs or to the logrotate state file.
因此,使用-f选项,您可以强制旋转所有日志,因此后缀为.1。
使用-d选项可以进行空转,因此您只能预览更改。
现在,如果要每天运行它,则必须使用cron。
默认情况下,安装后logrotate应该具有默认配置文件 /etc/logrotate.conf 和默认cron作业 /etc/cron.daily/logrotate
您可以使用它们,也可以创建自己的配置文件和cron作业。
假设您将自定义配置放置在 /etc/logrotate.d/mylog 中,则可以将以下cron作业放置在 /etc/cron.d/logrotate-cron 每天运行一次。
0 0 * * * root /usr/sbin/logrotate /etc/logrotate.d/mylog --state /etc/logrotate.status
您可以检查文件/etc/logrotate.status以确保其已运行。