码迷,mamicode.com
首页 > 其他好文 > 详细

日志定时切割,以及定时删除(2种方法)

时间:2018-10-08 11:19:07      阅读:611      评论:0      收藏:0      [点我收藏+]

标签:启动   catalina   ali   生成   命名   shel   man   app   包含   

切割catalian日志的方式有很多种,比如shell脚本的、cronolog或者通过配置log4j等等这些都可以实现。但今天我要介绍是使用logrotate来按日期生成日志。

如果catalina.out的大小超过了2G,那么tomcat可能在没有错误提示的情况下崩溃、无法启动。所以为了避免出现这个问题,我们应该每天分割catalina.out。

如何每天自动的分割catalina.out或者大小达到5M时切割catalina.out

1.第一种方法

 

#!/bin/sh
#需要进行分割log的路径,该脚本一般只修改这个路径就可以用
log_path=/home/webapp/tomcat/logs
#获取当前日期
d=date +%Y-%m-%d
#获取30天前的日期
d90=date -d30 day ago +%Y-%m-%d
#cd到log_path路径下 并copy 日志文件到cron目录下
cd ${log_path} && cp catalina.out catalina.out.$d.log
#清空原日志文件
echo > catalina.out
#移除30天前的日志文件
rm -rf $log_path/cron/catalina.out.${d90}.log 

 

配置crontab定时任务,定时直接脚本文件。


crontab -e 打开crontab编辑; 
编辑crontab每天晚上11点55分执行分割脚本 
55 11 * * * sh 脚本目录/**.sh  
:wq保存并退出。 crontab定时任务配置完成。
可以通过crontab -l 检查是否设置成功



 

第二种:

1.新建一个文件

在/etc/logrotate.d/ 目录下新建一个文件,命名随意。

1 /etc/logrotate.d/tomcat

2.复制下面的语句至上文新建的文件中

1 /var/log/tomcat/catalina.out {   copytruncate   daily   rotate 7   compress   missingok   size 5M  }

各个配置的具体含义:

  • 确保/var/log/tomcat/catalina.out指向你服务器中的catalina.out的地址
  • daily - 每天切割
  • rotate - 保留最多七个文件
  • compress - 压缩分割后的文件
  • size - 当catalina.out大于5M时分割

如何起作用

  1. 每天晚上,cron daemon会自动执行/etc/cron.daily目录下的任务
  2. 这个会触发/etc/cron.daily/logrotate文件,logrotate一般是随linux按安装的。它会执行这个命令-“/etc/sbin/logrotate /etc/logrotate.conf”(注意空格)
  3. /etc/logrotate.conf 包含了/etc/logrotate.d目录下的所有脚本
  4. 这个会触发上一步你写的/etc/logrotate.d/tomcate文件

手动执行logrotate

执行以下语句来手动运行cron任务

1 /usr/sbin/logrotate /etc/logrotate.conf

logrotate的更多操作

1 man logrotate

日志定时切割,以及定时删除(2种方法)

标签:启动   catalina   ali   生成   命名   shel   man   app   包含   

原文地址:https://www.cnblogs.com/zdqc/p/9753016.html

(0)
(1)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!