tomcat日誌切割和按期刪除java
在tomcat的軟件環境中,若是咱們任由日誌文件無限增加,總有一天會將磁盤佔滿的(廢話)。特別是在日誌文件增加速度很快的一些狀況下,按日誌切割日誌文件並刪除,就是一件頗有必要的工做了,如下介紹了切割日誌文件的方法。linux
[root@server1 ~]# cat /etc/redhat-release CentOS release 6.5 (Final) [root@server1 ~]# uname -r 2.6.32-431.el6.x86_64 [root@server1 ~]# uname -m x86_64
[root@server1 ~]# java -version java version "1.7.0_67" Java(TM) SE Runtime Environment (build 1.7.0_67-b01) Java HotSpot(TM) Server VM (build 24.65-b04, mixed mode)
[root@server1 ~]# /opt/gw/tomcat7/bin/catalina.sh version Using CATALINA_BASE: /opt/gw/tomcat7 Using CATALINA_HOME: /opt/gw/tomcat7 Using CATALINA_TMPDIR: /opt/gw/tomcat7/temp Using JRE_HOME: /usr/local/jdk1.7 Using CLASSPATH: /opt/gw/tomcat7/bin/bootstrap.jar:/opt/gw/tomcat7/bin/tomcat-juli.jar Server version: Apache Tomcat/7.0.57 Server built: Nov 3 2014 08:39:16 UTC Server number: 7.0.57.0 #<==tomcat-7.5.57版本 OS Name: Linux OS Version: 2.6.32-431.el6.x86_64 Architecture: i386 JVM Version: 1.7.0_67-b01 JVM Vendor: Oracle Corporation
Cronolog是一個過濾器程序,它從標準輸入讀取日誌文件條目,並將每一個條目寫入由文件名模板和當前日誌所指定的輸出文件中。 當擴展文件名改變時,關閉當前文件,並打開一個新文件。 Cronolog是爲了與Apache等Web服務器一塊兒使用,將訪問日誌分爲每日或每個月日誌。apache
cd /usr/local/src wget https://files.cnblogs.com/files/crazyzero/cronolog-1.6.2.tar.gz [root@kafka01 src]# md5sum cronolog-1.6.2.tar.gz a44564fd5a5b061a5691b9a837d04979 cronolog-1.6.2.tar.gz #<==cronolog的MD5碼
[root@kafka01 src]# tar xf cronolog-1.6.2.tar.gz [root@kafka01 src]# cd cronolog-1.6.2 [root@kafka01 cronolog-1.6.2]# ./configure #<==編譯,此前先確保安裝cmake等編譯工具 [root@kafka01 cronolog-1.6.2]# make && make install #<==安裝 [root@kafka01 cronolog-1.6.2]# which cronolog #<==檢查是否安裝成功,若是有結果則安裝成功 /usr/local/sbin/cronolog
[root@server1 ~]# which cronolog /usr/local/sbin/cronolog #<==cronolog命令的存放路徑 使用man幫助命令查看cronolog使用語法: [root@server1 ~]# man cronolog NAME cronolog - write log messages to log files named according to a template SYNOPSIS cronolog [OPTION]... template
配置日誌切割,只需修改配置文件catalina.sh(若是windows則是catalina.bat,這裏不介紹windows狀況)便可。大概在catalina文件中的第380行和第390行左右,修改以下:bootstrap
(1)內容:windows
org.apache.catalina.startup.Bootstrap "$@" start \ >> "$CATALINA_OUT" 2>&1 "&"
替換爲:tomcat
org.apache.catalina.startup.Bootstrap "$@" start \ 2>&1 |/usr/local/sbin/cronolog "$CATALINA_BASE/logs/catalina-%Y-%m-%d.out" &
(2)內容:bash
org.apache.catalina.startup.Bootstrap "$@" start \ >> "$CATALINA_OUT" 2>&1 "&"
替換爲:服務器
org.apache.catalina.startup.Bootstrap "$@" start \ 2>&1 |/usr/local/sbin/cronolog "$CATALINA_BASE/logs/catalina-%Y-%m-%d.out" &
配置完成後,重啓tomcat便可!!!!ide
在這裏直接使用linux自帶的crontab定時任務工具,設置天天凌晨00:00執行刪除任務,刪除7天之前的日誌文件。工具
crontab -e #<==直接輸入該命令,添加一個定時任務計劃 00 00 * * * /bin/find /opt/gdyy/tomcat7/logs/ -type f -mtime +7 | xargs rm -f &>/dev/null #<==查找tomcat/logs下面的日誌文件,並刪除7天之前的日誌,添加完成後保存退出!!
[root@server1 ~]# crontab -l #<==查看定時任務計劃 #remove gw log 7 days ago by liutao at 2018-02-08 00 00 * * * /bin/find /opt/gw/tomcat7/logs/ -type f -mtime +7 | xargs -i mv {} /data/bak/gw_log/ &>/dev/null
tomcat日誌切割並定時刪除完成!!!