linux下Tomcat日志文件catalina.out的切割

使用系统自带的logrotate进行切割:

(安装:yum install logrotate -y)

在/etc/logrotate.d/文件夹下新建文件,内容如下:

vim /etc/logrotate.d/tomcat

/application/Tomcat8.5.57/logs/catalina.out {
copytruncate
daily
rotate 90
missingok
compress
dateext
dateformat_%Y-%m-%d
}

参数解析:

/application/Tomcat8.5.57/logs/catalina.out:为tomcat的日志路径

copytruncate: 用于还在打开中的日志文件,把当前日志备份并截断

daily:日志文件将按天轮询,其它可用值为‘monthly’,‘weekly’或者‘yearly’

rotate :指定日志文件删除之前转储的次数,0 指没有备份,5 指保留5 个备份

missingok :如果日志不存在则忽略该警告信息,继续下次的轮询

compress: 通过gzip 压缩转储以后的日志

dateext :切换后的日志文件会附加上一个短横线和YYYYMMDD格式的日期,没有这个配置项会附加一个小数点加一个数字序号.

dateformat :配合dateext使用可以为切割后的日志加上YYYYMMDD格式的日期,如dateformat -%Y%m%d

其余参数:

notifempty :如果是空文件的话,不转储

size :当日志文件到达指定的大小时才转储(单位可以为bytes、KB、MB)

olddir:带路径,将轮替后的日志文件存放到指定目录

mail:将轮替后的文件发送到指定E-mail地址

...........................................

可以手动执行测试:/usr/sbin/logrotate -vf /etc/logrotate.d/tomcat

    1. -?或--help:在线帮助;
    2.  
      -d或--debug:详细显示指令执行过程,便于排错或了解程序执行的情况;
    3.  
      -f或--force :强行启动记录文件维护操作(强制转存日志);
    4.  
      -s<状态文件>或--state=<状态文件>:使用指定的状态文件;
    5.  
      -v或--version:显示指令执行过程;
    6.  
      -usage:显示指令基本用法。

工作原理:

crontab会每天定时执行/etc/cron.daily目录下的脚本,而这个目录下有个文件叫logrotate;

cat /etc/cron.daily/logrotate

/usr/sbin/logrotate /etc/logrotate.conf >/dev/null 2>&1
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
    /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0
原文地址:https://www.cnblogs.com/shiqing-zhang/p/14085358.html