609

是否可以手动运行一次 logrotate 迭代而不在某个时间间隔安排它?

4

8 回答 8

813

是的: logrotate --force $CONFIG_FILE

于 2010-01-22T14:16:33.060 回答
640

logrotate -d [your_config_file]调用调试模式,为您详细描述将会发生的事情,但保持日志文件不变。

于 2011-08-09T19:15:54.680 回答
140

如果要强制运行单个特定目录或守护程序的日志文件,通常可以在 中找到配置/etc/logrotate.d,它们将独立运行。

请记住,其中指定的全局配置将不适用,因此如果您这样做,您应该确保在配置文件中专门/etc/logrotate.conf指定所有您想要的选项。/etc/logrotate.d/[servicename]

你可以试试看-d会发生什么:

logrotate -df /etc/logrotate.d/nginx

然后就可以运行了(以nginx为例):

logrotate -f /etc/logrotate.d/nginx

并且仅 nginx 日志将被轮换。

于 2013-03-05T15:11:48.413 回答
69

您可能希望以详细 + 强制模式运行它。

logrotate -vf /etc/logrotate.conf

于 2012-06-03T06:31:23.643 回答
41

运行所有 logrotate 的方法是:

logrotate -f /etc/logrotate.conf

这将运行主 logrotate 文件,其中还包括其他 logrotate 配置

于 2012-05-19T00:12:05.473 回答
24

发出以下命令,运行指定 logrotate 的方式:

logrotate -vf /etc/logrotate.d/custom

选项:

-v : 显示进程

-f : 强制运行

custom :用户自定义日志设置

例如:mongodb-log

# mongodb-log rotate

/data/var/log/mongodb/mongod.log {
    daily
    dateext
    rotate 30
    copytruncate
    missingok
}
于 2015-03-11T08:05:22.210 回答
8

编辑 /var/lib/logrotate.status(或 /var/lib/loglogrotate/logrotate.status)以重置您要测试的日志文件上的“最后轮换”日期。

然后运行logrotate YOUR_CONFIG_FILE

或者,您可以使用 --force 标志,但编辑 logrotate.status 可以让您更精确地确定旋转和不旋转的内容。

于 2017-11-12T23:29:01.410 回答
3

创建了一个shell脚本来解决这个问题。

https://antofthy.gitlab.io/software/#logrotate_one

该脚本将仅运行“/etc/logrotate.d”中的单个 logrotate 子配置文件,但包含全局配置文件“/etc/logrotate.conf”中的全局​​设置。您也可以使用其他选项进行测试...

例如...

  logrotate_one -d syslog
于 2016-11-30T03:23:02.873 回答