Linux下Tomcat日誌自動定時打包完美實現
阿新 • • 發佈:2018-12-16
一、場景
1、環境
CentOS 7.0,Tomcat 8.0.33 ,(jdk-1.8.0_171)
2、目的
隨著時間推移,tomcat下的日誌檔案catalina.out越來越大,當檢視日誌時效率低下。所以,為了方便日誌的查閱,將catalina.out檔案按天定時分割打成tar包。也方便了以後按時間清理不必要的日誌檔案。
二、Linux相關配置
1、相關環境配置
首先,在CentOS 7.0上配置好JDK環境,安裝好Tomcat。Linux下JDK配置具體可參考:Linux下的JDK配置
我的Tomcat如下:兩個Tomcat分別為apache-tomcat-8.0.33-25081-25080-25082和apache-tomcat-8.0.33-26081-26080-26082
[[email protected] songsir]# ll total 233140 drwxr-xr-x. 9 root root 160 Oct 19 03:29 apache-tomcat-8.0.33-25081-25080-25082 drwxr-xr-x. 9 root root 160 Oct 19 00:09 apache-tomcat-8.0.33-26081-26080-26082 -rw-r--r--. 1 root root 9252868 Aug 28 03:34 apache-tomcat-8.0.33.updated.tar.gz drwxr-xr-x. 8 1002 1002 255 Mar 28 2018 jdk1.8.0_171 -rw-r--r--. 1 root root 194421880 Aug 28 03:33 jdk-1.8.0_171-shopin.tar.gz drwxr-xr-x. 2 root root 6 Oct 18 23:21 rabbitmq -rw-rw-r--. 1 songsir songsir 662 Oct 19 00:28 tomcatLog.sh drwxr-xr-x. 11 1001 1001 4096 Aug 28 04:21 zookeeper-3.4.10 -rw-r--r--. 1 root root 35042811 Aug 28 04:08 zookeeper-3.4.10.tar.gz
2、建立打包指令碼
新建tomcatLog.sh檔案,在裡面新增命令如下:
dir=/home/songsir/ log=/logs/ date=$(date +%F-%H) for i in apache-tomcat-8.0.33-25081-25080-25082 apache-tomcat-8.0.33-26081-26080-26082 do cd $dir if [ -d $i ] then cd /tmp cd $dir$i$log && cp -fr catalina.out catalina.out.$date.bak&& tar -czf catalina.out.$date.tar.gz catalina.out.$date.bak\ && cat catalina.out > catalina_old.out \ && rm -fr catalina.out.$date.bak \ &&cat /dev/null > catalina.out #echo $i $dir$i$log"catalina.out" else echo "directory is not " fi done
上面命令只需要dir改成自己的Tomcat所在目錄,然後把Tomcat名稱改成自己的Tomcat名稱即可。
3、建立定時任務命令
[[email protected] songsir]# crontab -e
添上命令儲存即可
# 分 時 日 月 周 命令 */2表示每兩天
# 每兩天的一點執行一次
1 1 */2 * * /bin/sh /home/songsir/tomcatLog.sh
三、執行效果
[[email protected] songsir]# cd apache-tomcat-8.0.33-25081-25080-25082/logs
[[email protected] logs]# ll
total 48
-rw-r--r--. 1 root root 0 Oct 19 03:48 catalina_old.out
-rw-rw-rw-. 1 root root 0 Oct 19 03:48 catalina.out
-rw-r--r--. 1 root root 128 Oct 19 03:48 catalina.out.2018-10-19-03.tar.gz
打包好的日誌檔案如上:catalina.out.2018-10-19-03.tar.gz