我按照此链接更改了RHEL 6的日志轮转配置。

对配置文件进行更改后,应该怎么做才能使它生效?

#1 楼

logrotate使用crontab工作。它是排定的工作,而不是守护程序,因此无需重新加载其配置。
crontab执行logrotate时,它将自动使用新的配置文件。
如果需要测试配置,也可以执行使用以下命令自行运行logrotate

logrotate /etc/logrotate.d/your-logrotate-config


或者如注释中所述,在命令logrotate的输出中标识crontab -l行并执行参考slm的命令行回答,以得到准确的cron.daily说明

评论


只是为了增加您的答案,logrotate的cron条目计划每天运行一次。

– mkc
2014年2月20日在17:12

@Ketan,所以,我如何使其立即受到影响?谢谢

–BufBills
2014年2月20日在17:17

如果您希望它生效,请立即运行cron后记。

–slm♦
2014年2月20日在17:29

logrotate有一个-d选项进行测试(或“调试”),我建议至少运行一次。

–FrustratedWithFormsDesigner
17-2-23在16:52



新的必需的su指令su root syslog是一个非常常见的问题。如果不添加logrotate,则会使logrotate停止。为了使人们感到沮丧,当他们添加该指令并运行(强制)logrotate时,它会继续吐出“错误:跳过” / var / log / syslog”,因为父级目录具有不安全的权限(配置更改后20个小时内,该目录的世界可写或不是“ root” ...”组的用户都可写,就好像设置/进程已被缓存!!如果卡在此处,请在/上使用chgrp var / log到root,运行logrotate,chgrp回到syslog,它将在下次运行时清除

– ppostma1
17年5月24日在16:16

#2 楼

我在各种发行版中看到的大多数logrotate设置都用完/etc/cron.daily。有一个名为logrotate的shell脚本。

示例

$ ls -l /etc/cron.daily/logrotate 
-rwxr-xr-x 1 root root 180 May 18  2011 /etc/cron.daily/logrotate


手动运行

如果要制作它可以手动运行,只需以root身份运行脚本即可:

$ sudo /etc/cron.daily/logrotate


如果您查看通常存在的脚本,它将向您展示如何手动运行logrotate,只需运行logrotate +其配置文件的路径即可。

#!/bin/sh

/usr/sbin/logrotate /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
    /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0


#3 楼

它应该通过cron自动执行。您可以强制其测试更改。

对于全局logrotate:

sudo logrotate -v -f /etc/logrotate.conf


对于单个conf文件:

sudo logrotate -v -f /etc/logrotate.d/someapp.conf


评论


-f用于强制旋转,还有-d用于调试,它也是空运行,它将打印本来会执行但实际上不执行的所有操作。

–雷神召唤师
16-2-22在23:37

#4 楼

在我的CentOS 6.5机器上为nginx设置logrotate时,我必须这样做:

logrotate /etc/logrotate.d/nginx


然后我检查logrotate是否像这样照顾新的nginx配置:

cat /var/lib/logrotate.status