程序在运行的时候为了了解运行状态,会输出日志文件,时间久了日志文件会变得非常大。
1、 logrotate简介:
强大的系统软件,对日志文件有着一套完整的操作模式。
例如:转储
把旧的日志文件删除,并创建新的日志文件。
可以根据日志文件的大小,也可以根据其天数来转储,这个过程一般通过 cron 程序来执行。
默认logrotate加到cron(/etc/cron.daily/logrotate)作为每日任务执行。
通过让用户来配置规则的方式,检测和处理日志文件。
并且可以配合Cron处理定时任务。
预制了大量判断条件和处理方式。
等等。
2、 安装logrotate
sudo yum install -y logrotate
3、logrotate组成
/usr/sbin/logrotate程序所在位置。
/etc/cron.daily/logrotate 默认让Cron每天执行logrotate一次。
/etc/logrotate.conf全局配置文件。
参数解释:
第3行:weekly指定所有的日志文件每周转储一次。
第6行:rotate 4指定转储文件的保留4份。
第9行:create指定logrotate自动建立新的日志文件,新的日志文件具有和
原来的文件一样的权限。
第12行:dateext指定文件后缀是日期格式。
第18行:include选项允许系统管理员把分散到几个文件的转储信息,集中到一个
主要的配置文件。当 logrotate从logrotate.conf读到include 选项时,会从指定文件读入配置信息。
注意:
include 选项十分重要,一些应用把日志转储参数存放在/etc/logrotate.d。
系统管理员也只需要管理/etc/logrotate.conf下面文件就OK了。
如下:我们的Tomcat会放在/etc/logrotate.d下面。
/etc/logrotate.d/应用自己的配置文件存放目录,覆盖全局配置。
注意:
为了方便管理我们一般把配置文件放在/etc/logrotate.conf下面。
3、运行机制:
系统会定时运行logrotate,系统是按天执行的。
crontab会每天定时执行/etc/cron.daily/logrotate脚本。
4、配置对catalina.out日志切割文件
注意:
放在/etc/logrotate.d下。
sudo vim /etc/logrotate.d/tomcat
写入:
/home/odysee/General/tomcat8.5/logs/catalina.out{
daily
copytruncate
rotate 30
compress
notifempty
dateext
missingok
}
配置文件参数解释:
daily 表示每天整理一次
rotate 5 指定日志文件删除之前转储次数,0没有备份,5保留5个备份
dateext 文件后缀是日期格式
copytruncate 用于还在打开中的日志文件,把当前日志备份并截断
compress 通过gzip压缩转储以后的日志(gzip -d xxx.gz解压)
missingok 如果日志不存在则忽略该警告信息
notifempty 如果是空文件的话,不转储
#size 5M 当catalina.out大于5M就进行切割
5、 测试
One、调试(d = debug)参数为配置文件,不指定则执行全局配置文件
logrotate -d /etc/logrotate.d/tomcat.conf
Two、强制执行(-f = force),可配合-v(-v =verbose)使用,注意调试信息默认携带-v
logrotate -v -f /etc/logrotate.d/tomcat.conf
立即截断日志:
sudo logrotate -v -f /etc/logrotate.d/tomcat
每天自动帮我们分隔日志并进行打包。
欢迎大家给予宝贵的意见或者建议。
欢迎大家补充或者共享一些其他的方法。
感谢支持。