logrotate 主要是针对登录文件来进行轮替的动作,他必须要记载“ 在什么状态下才将登录文件进行轮替”的设置。logrotate 这个程序的参数配置文件在:
/etc/logrotate.conf
/etc/logrotate.d/
logrotate.conf 才是主要的参数文件,至于 logrotate.d 是一个目录, 该目录里面的所有文件都会被主动的读入 /etc/logrotate.conf 当中来进行!另外,在 /etc/logrotate.d/ 里面的文件中,如果没有规定到的一些细部设置,则以 /etc/logrotate.conf 这个文件的规定来指定为默认值!
logrotate 的主要功能就是将旧的登录文件移动成旧文件, 并且重新创建一个新的空的文件来记录,他的执行结果有点类似下面的图示:

图18.3.1、登录文件进行 logrotate 的结果
由上面的图示我们可以清楚的知道,当第一次执行完 rotate 之后,原本的 messages 会变成messages.1 而且会制造一个空的 messages 给系统来储存登录文件。而第二次执行之后,则messages.1 会变成 messages.2 而 messages 会变成 messages.1 ,又造成一个空的messages 来储存登录文件!那么如果我们仅设置保留三个登录文件而已的话,那么执行第四次时,则 messages.3 这个文件就会被删除,并由后面的较新的保存登录文件所取代!基本的工作就是这样。
下面是logrotate.conf中的默认内容:

由这个文件的设置我们可以知道 /etc/logrotate.d 其实就是由 /etc/logrotate.conf 所规划出来的目录,所以,其实我们可以将所有的数据都给他写入 /etc/logrotate.conf 即可,但是这样一来这个文件就实在是太复杂了,尤其是当我们使用很多的服务在系统上面时, 每个服务都要去修改 /etc/logrotate.conf 的设置也似乎不太合理。所以,如果独立出来一个目录,那么每个以RPM 打包方式所创建的服务的登录文件轮替设置, 就可以独自成为一个文件,并且放置到/etc/logrotate.d/ 当中即可。
一般来说,这个 /etc/logrotate.conf 是“默认的轮替状态”而已, 我们的各个服务都可以拥有自己的登录文件轮替设置。如果你的系统空间够大,并且担心出错及骇客的问题,那么可以:
将 rotate 4 改成 rotate 9 左右,以保存较多的备份文件。
大部分的登录文件不需要 compress,空间太小就需要compress,尤其是很占硬盘空间的 httpd 更需要 compress 的。
logrotate.conf 的设置语法是:

下面我们再以 /etc/logrotate.d/syslog 这个轮替 rsyslog.service 服务的文件,来看看该如何设置他的 rotate:

在上面的语法当中,我们知道正确的 logrotate 的写法为:
那么 /etc/logrotate.d/syslog 内设置的 5 个文件的轮替功能就变成了:

上面那个 -f 具有“强制执行”的意思,如果一切的设置都没有问题的话,那么理论上,你的/var/log 这个目录就会起变化。