是否可以手动运行一个logrotate检查?

是否有可能手动运行一个logrotate的迭代,而不是在一定的时间间隔安排它?

是的: logrotate --force $CONFIG_FILE

logrotate -d [your_config_file]调用debugging模式,给你详细描述将会发生什么,但是保持日志文件不变。

如果您想要强制运行一个特定的目录或守护进程的日志文件,通常可以在/etc/logrotate.dfindconfiguration,它们将独立运行。

请记住,在/etc/logrotate.conf/etc/logrotate.conf全局configuration不适用,所以如果你这样做,你应该确保你在/etc/logrotate.d/[servicename]configuration文件中指定了所有的选项。

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

 logrotate -df /etc/logrotate.d/nginx 

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

 logrotate -f /etc/logrotate.d/nginx 

单独的nginx日志将被旋转。

您可能需要以verbose + force模式运行它。

logrotate -vf /etc/logrotate.conf

运行所有logrotate的方法是:

 logrotate -f /etc/logrotate.conf 

这将运行主要的logrotate文件,其中还包括其他的logrotateconfiguration

发出以下命令,以运行指定的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 } 

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

http://www.ict.griffith.edu.au/anthony/software/#logrotate_one

该脚本将运行“/etc/logrotate.d”中的单个logrotate子configuration文件,但在全局configuration文件“/etc/logrotate.conf”中包含全局设置。 您也可以使用其他otpionstesting它…

例如…

  logrotate_one -d syslog 

编辑/var/lib/logrotate.status重置要testing的日志文件上的“上次旋转”date。

然后运行logrotate YOUR_CONFIG_FILE

或者你可以使用–force标志,但是编辑logrotate.status可以让你更精确地知道什么和不会被旋转。