设为首页 收藏本站
查看: 638|回复: 0

[经验分享] Linux下用cronolog切割Tomcat日志并删除指定天数前的日志记录

[复制链接]

尚未签到

发表于 2018-11-30 11:50:31 | 显示全部楼层 |阅读模式
  使用cronolog工具切分Tomcat的catalina.out日志文件
  

  普通用户下载、安装cronolog
[tomcat@localhost ~]$ tar -xf cronolog-1.6.2.tar.gz
[tomcat@localhost ~]$ cd cronolog-1.6.2/
[tomcat@localhost cronolog-1.6.2]$  ./configure --prefix=/home/tomcat/cronolog
make
make install  root用户下下载、安装cronolog
[root@localhost ~]# rpm -qa |grep cronolog
[root@localhost ~]# tar zxvf cronolog-1.6.2.tar.gz
[root@localhost ~]# cd cronolog-1.6.2
[root@localhost cronolog-1.6.2]# ./configure
[root@localhost cronolog-1.6.2]# make && make install
[root@localhost cronolog-1.6.2]# which cronolog
/usr/local/sbin/cronolog  

  在普通用户的家目录下编辑.bash_profile文件里添加“$HOME/cronolog/sbin”添加cronolog的安装路径
  [tomcat@localhost ~]$ vi .bash_profile
# .bash_profile                                                                                                                                                                              
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin:$HOME/cronolog/sbin
export PATH  用which cronolog可以查到安装的路径,这个路径待会在修改catalina.sh时会用到。

  

  修改catalina.sh 文件
  将186行【CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out】修改成187行【CATALINA_OUT="$CATALINA_BASE"/logs/opres.%Y-%m-%d.out】内容,日志名可以自行定义;
  注释掉370行【touch "$CATALINA_OUT"】
  383、384行
org.apache.catalina.startup.Bootstrap "$@" start \
>> "$CATALINA_OUT" 2>&1 "&"】替换成385、386行
org.apache.catalina.startup.Bootstrap "$@" start 2>&1 \
| /home/tomcat/cronolog/sbin/cronolog "$CATALINA_OUT" >> /dev/null 2>&1 &


396、397行
  org.apache.catalina.startup.Bootstrap "$@" start \
  >> "$CATALINA_OUT" 2>&1 "&"
替换成394、395行
org.apache.catalina.startup.Bootstrap "$@" start 2>&1 \
| /home/tomcat/cronolog/sbin/cronolog "$CATALINA_OUT" >> /dev/null 2>&1 &
;最后一步(394、395)要注意如果原本的命令只是注释掉,替换的内容一定要在原本内容的上面,不然无法正常启动,前面的替换(383、384)位置没有关系的
97 JAVA_OPTS="-Xms512m -Xmx1024m -Xss1024K -XX:PermSize=256m -XX:MaxPermSize=512m"
98
99 # OS specific support.  $var _must_ be set to either true or false.
185 if [ -z "$CATALINA_OUT" ] ; then
186   # CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out
187    CATALINA_OUT="$CATALINA_BASE"/logs/opres.%Y-%m-%d.out
370   #touch "$CATALINA_OUT"
371   if [ "$1" = "-security" ] ; then
372     if [ $have_tty -eq 1 ]; then
373       echo "Using Security Manager"
374     fi
375     shift
376     eval "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
377       -Djava.endorsed.dirs="\"$JAVA_ENDORSED_DIRS\"" -classpath "\"$CLASSPATH\"" \
378       -Djava.security.manager \
379       -Djava.security.policy=="\"$CATALINA_BASE/conf/catalina.policy\"" \
380       -Dcatalina.base="\"$CATALINA_BASE\"" \
381       -Dcatalina.home="\"$CATALINA_HOME\"" \
382       -Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \
383      # org.apache.catalina.startup.Bootstrap "$@" start \
384      # >> "$CATALINA_OUT" 2>&1 "&"
385        org.apache.catalina.startup.Bootstrap "$@" start 2>&1 \
386         | /home/tomcat/cronolog/sbin/cronolog "$CATALINA_OUT" >> /dev/null 2>&1 &
387
388   else
389     eval "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
390       -Djava.endorsed.dirs="\"$JAVA_ENDORSED_DIRS\"" -classpath "\"$CLASSPATH\"" \
391       -Dcatalina.base="\"$CATALINA_BASE\"" \
392       -Dcatalina.home="\"$CATALINA_HOME\"" \
393       -Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \
394        org.apache.catalina.startup.Bootstrap "$@" start 2>&1 \
395         | /home/tomcat/cronolog/sbin/cronolog "$CATALINA_OUT" >> /dev/null 2>&1 &
396     #  org.apache.catalina.startup.Bootstrap "$@" start \
397     #  >> "$CATALINA_OUT" 2>&1 "&"
398   fi  可以通过./catalina.sh start 来查看配置文件是否正确;这样在/usr/local/tomcat/logs每天会自动生成opres.%Y-%m-%d.out文件,下面我们要做的是定期清理这些过期的文件,我们可以通过crontab来实现
[tomcat@localhost ~]$ crontab -e
30 3 * * * /bin/find /home/tomcat/openapi/logs/ -mtime +7 -type f -name "opres*.*.out" -exec /bin/rm -f {} \;
[tomcat@localhost ~]$ crontab -l                                                   
30 3 * * * /bin/find /home/tomcat/openapi/logs/ -mtime +7 -type f -name "opres*.*.out" -exec /bin/rm -f {} \;  每天凌晨3点半执行清除7天之前过期日志
  

  或者
  #每天凌晨3点执行删除前7天的所有tomcat生成的日志文件(切割的日志名字与原告先的一样只是加了日期catalina.%Y-%m-%d.out)
0 3 * * * /bin/find /opt/tomcat -mtime +7 -type f -name"catalina.*.out" -exec /bin/rm -rf {} \;
0 3 * * * /bin/find /opt/tomcat -mtime +7 -type f -name "catalina.*.log"-exec /bin/rm -rf {} \;
0 3 * * * /bin/find /opt/tomcat -mtime +7 -type f -name "host-manager.*.log"-exec /bin/rm -rf {} \;
0 3 * * * /bin/find /opt/tomcat -mtime +7 -type f -name"localhost.*.log" -exec /bin/rm -rf {} \;
0 3 * * * /bin/find /opt/tomcat -mtime +7 -type f -name" manager.*.log" -exec /bin/rm -rf {} \;
上面有些觉得写的太多,可以简为写成如下:
0 3 * * * /bin/find /opt/tomcat/logs/* -mtime +7 -exec /bin/rm -rf {} \;  

  

  命令说明:
  /var/www/    是查找文件的路径。
-type f    是指定文件类型为普通文件。
-mtime +30    是指修改时间距离现在30天的文件。
-exec rm -f    指执行删除匹配出来的文件并且不提示,有的系统需要带单引号,有的不需要。将以上命令,添加到crontab中,即可实现定期删除了。
比如,每天的1点30分钟实现删除,可以这样:
  #每天凌晨1点执行删除前30天的日志文件
0 1 * * * find /aa/tomcat6.0/logs/* -mtime +30 -exec rm -f {} \;  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-641564-1-1.html 上篇帖子: Struts2.1+Spring2.5+tomcat6.0连接池整合过程详解 下篇帖子: Tomcat安全管理规范
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表