1. 程式人生 > >Linux下Tomcat日誌自動定時打包完美實現

Linux下Tomcat日誌自動定時打包完美實現

一、場景

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