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

时间:2010-01-22 14:14:23

标签: logging logrotate

是否可以手动运行一次logrotate迭代而无需在某个时间间隔内进行调度?

8 个答案:

答案 0 :(得分:651)

是:logrotate --force $CONFIG_FILE

答案 1 :(得分:481)

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

答案 2 :(得分:108)

如果要强制运行单个特定目录或守护程序的日志文件,通常可以在/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日志将被轮换。

答案 3 :(得分:57)

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

logrotate -vf /etc/logrotate.conf

答案 4 :(得分:34)

运行所有logrotate的方法是:

logrotate -f /etc/logrotate.conf

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

答案 5 :(得分:21)

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

logrotate -vf /etc/logrotate.d/custom

选项:

-v:显示流程

-f:强制运行

自定义:用户定义的日志设置

例如: mongodb的日志

# mongodb-log rotate

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

答案 6 :(得分:3)

编辑/var/lib/logrotate.status以重置您要测试的日志文件上的“上次轮换”日期。

然后运行logrotate YOUR_CONFIG_FILE

或者您可以使用--force标志,但编辑logrotate.status可以提供更多关于旋转和不旋转的精度。

答案 7 :(得分:1)

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

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

此脚本将仅运行在" /etc/logrotate.d"中找到的单个logrotate子配置文件,但包括全局配置文件中的全局设置" / etc / logrotate的.conf&#34 ;.您还可以使用其他otpions进行测试......

例如......

  logrotate_one -d syslog