是否有可能手动运行logrotate的一次迭代,而不将其安排在某个间隔上?


当前回答

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

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

该脚本将只运行“/etc/logrotate”目录下的单个logrotate子配置文件。但是在全局配置文件“/etc/logrotate.conf”中包含全局设置。你也可以使用其他方法来测试它…

例如……

  logrotate_one -d syslog

其他回答

您可能希望在verbose + force模式下运行它。

Logrotate -vf /etc/logrotate.conf

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

logrotate -vf /etc/logrotate.d/custom

选项:

-v:显示进程

-f:强制运行

自定义:自定义日志设置

例如: mongodb-log

# mongodb-log rotate

/data/var/log/mongodb/mongod.log {
    daily
    dateext
    rotate 30
    copytruncate
    missingok
}

编辑/var/lib/logrotate.状态(或/var/lib/loglogrotate/logrotate.status)重置要测试的日志文件上的“上次旋转”日期。

然后执行logrotate YOUR_CONFIG_FILE命令。

或者你可以使用——force标志,但是编辑logrotate。状态可以让您更精确地确定哪些可以旋转,哪些不可以旋转。

如果您想强制运行单个特定目录或守护进程的日志文件,通常可以在/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 log单独被旋转。

是:logrotate——force $CONFIG_FILE