1、简介
logrotate 程序是一个日志文件管理工具。用来把旧的日志文件删除,并创建新的日志文件,我们把这个过程叫做“转储”。
我们可以根据日志文件的大小,也可以根据其天数来转储,这个过程一般通过 cron 程序来执行,比如系统每天的定时任务会执行一次logrotate操作来完成系统日志的转储。
logrotate 的默认配置文件是/etc/logrotate.conf
,一般自定义一个新的配置文件来完成相应日志切割管理。
2、配置参数详解
1 | compress 通过gzip 压缩转储以后的日志 |
3、缺省的配置详解/etc/logrotate.conf
1 | # see "man logrotate" for details |
缺省的配置一般放在logrotate.conf 文件的最开始处,影响整个系统。在本例中就是前面14行。
weekly 指定所有的日志文件每周转储一次。
rotate 4 指定转储文件的保留 4份。
errors root 指定错误信息发送给root。
create 指定 logrotate 自动建立新的日志文件,新的日志文件具有和原来的文件一样的权限。
compress 指定不压缩转储文件,如果需要压缩,去掉注释就可以了。
include 默认include文件夹下的所有配置文件都生效。
4、系统自带的系统日志切割配置/etc/logrotate.d/syslog
该配置只是对messages、maillog、messages、secure、spooler系统日志有效。
1 | $ cat /etc/logrotate.d/syslog |
5、按日期对nginx、php的日志进行切割
新建配置文件/etc/logrotate_php_nginx.conf
1 | $ cat /etc/logrotate_php_nginx.conf |
然后再新增加一条定时任务,每天23:59执行一次特定的logrorate操作。
注意上面的rotate的值为4。只能保存最新的5份日志即5天的日志,如果只想将日志落地到本地需要将该参数调大(1年就是365)。
1 | 59 23 * * * root sh /usr/sbin/logrotate /etc/logrotate_php_nginx.conf > /dev/null 2>&1 |