是否有可能手动运行logrotate的一次迭代,而不将其安排在某个间隔上?
是的:# EYZ0
logrotate -d [your_config_file]调用调试模式,为您详细描述将发生什么,但不影响日志文件。
logrotate -d [your_config_file]
运行所有logrotate的方法是:
logrotate -f /etc/logrotate.conf
这将运行主日志文件,其中还包括其他日志配置
您可能希望在verbose + force模式下运行它。
# EYZ0
如果希望强制运行单个特定目录或守护进程的日志文件,通常可以在/etc/logrotate.d中找到配置,它们将独立工作。
/etc/logrotate.d
请记住,在/etc/logrotate.conf中指定的全局配置将不应用,因此如果您这样做,您应该确保在/etc/logrotate.d/[servicename]配置文件中指定了所需的所有选项。
/etc/logrotate.conf
/etc/logrotate.d/[servicename]
你可以用-d试试,看看会发生什么:
-d
logrotate -df /etc/logrotate.d/nginx
然后你可以运行(以nginx为例):
logrotate -f /etc/logrotate.d/nginx
nginx log单独被旋转。
发出以下命令,指定logrotate的运行方式:
logrotate -vf /etc/logrotate.d/custom
选项:
-v:显示进程
-f:强制运行
自定义:自定义日志设置
# mongodb-log rotate /data/var/log/mongodb/mongod.log { daily dateext rotate 30 copytruncate missingok }
创建一个shell脚本来解决这个问题。
< a href = " https://antofthy.gitlab。Io /software/#logrotate_one" rel="nofollow noreferrer">https://antofthy.gitlab.io/software/#logrotate_one
该脚本将只运行在"/etc/logrotate.d"中找到的单个logrotate子配置文件,但包括全局配置文件"/etc/logrotate.conf"中的全局设置。你也可以使用其他方法来测试它…
例如……
logrotate_one -d syslog
编辑/var/lib/logrotate.状态(或/var/lib/loglogrotate/logrotate.status)重置要测试的日志文件上的“上次旋转”日期。
然后执行logrotate YOUR_CONFIG_FILE命令。
logrotate YOUR_CONFIG_FILE
或者你可以使用——force标志,但是编辑logrotate。状态可以让您更精确地确定哪些可以旋转,哪些不可以旋转。