ubuntu下用logrotate工具分割日志

当项目时间越来越久时,项目日志就会越来越大。前不久笔者的一个项目log日志就达到6000M,想打开文件查看,加载5分钟过去了都没有打开。因此,决定使用logratate工具进行分割日志。

logrotate 程序是一个日志文件管理工具。用来把旧的日志文件删除,并创建新的日志文件,我们把它叫做“转储”。我们可以根据日志文件的大小,也可以根据其天数来转储,这个过程一般通过 cron 程序来执行。

一 logrotate的配置文件

/etc/logrotate.conf/etc/logrotate.d/,其中
logrotate.conf 是主要的参数文件,logrotate.d 是一个目录,该目录里面的所有数据都会被主动读入/etc/logrotate.conf 当中来进行。另外,在/etc/logrotate.d/ 里面的文件中,如果没有指定一些详细的设置,则以 /etc/logrotate.conf 的规定来指定为默认值。

二 创建配置文件

cd /etc/logrotate.d/
cp xxx newxxx
vi newxxx

就是到logrotate.d文件夹下,复制一份先有的,改一下。需要说明一下里面的配置属性:
下面是一份案例newxxx:

/var/test/storage/logs/laravel.log {
    su banboo banboo 
    size=30M
    missingok
    rotate 31
    compress
    delaycompress
    notifempty
    copytruncate
    dateext
}

1.su banboo banboosu
2.missingok表示如果找不到log文件也没OK
3.compress 通过gzip 压缩转储以后的日志
4.nocompress 不需要压缩时,用这个参数
5.rotate 31 表示保留31天的备份文件
6.notifempty 表示如果log文件是空的,就不进行rotate
7.copytruncate 表示先复制log文件的内容,然后再清空
8.dateext表示备份的日志文件后缀格式为YYYYMMDD

三 生效

执行下列命令

sudo /usr/sbin/logrotate -f /etc/logrotate.conf/newxxx

执行后,将出现备份文件,例如:laravel.log-20170517

你可能感兴趣的:(ubuntu下用logrotate工具分割日志)