logrotate:即使我使用了 -f 选项,每日轮换也不起作用
logrotate: daily rotation didn't work even though i used -f option
这是 /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 后缀。
谁能解释一下这种奇怪的行为是什么?
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 以确保它 运行.
这是 /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 后缀。
谁能解释一下这种奇怪的行为是什么?
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 以确保它 运行.