tomcat日志切割和定期刪除


tomcat日志切割和定期刪除

在tomcat的軟件環境中,如果我們任由日志文件無限增長,總有一天會將磁盤占滿的(廢話)。特別是在日志文件增長速度很快的一些情況下,按日志切割日志文件並刪除,就是一件很有必要的工作了,以下介紹了切割日志文件的方法。

第1章 系統環境

1.1 操作系統環境

1
2
3
4
5
6
[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

1.2 jdk環境

1
2
3
4
[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)

1.3 tomcat環境

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[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

第2章 切割工具cronolog

2.1 cronolog的介紹

Cronolog是一個過濾器程序,它從標准輸入讀取日志文件條目,並將每個條目寫入由文件名模板和當前日志所指定的輸出文件中。 當擴展文件名改變時,關閉當前文件,並打開一個新文件。 Cronolog是為了與Apache等Web服務器一起使用,將訪問日志分為每日或每月日志。

2.2 cronolog的安裝

2.2.1 下載cronolog

1
2
3
4
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碼

2.2.2 編譯安裝

1
2
3
4
5
6
[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

2.3 cronolog命令

1
2
3
4
5
6
7
8
9
[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

第3章 配置tomcat日志切割

配置日志切割,只需修改配置文件catalina.sh(如果windows則是catalina.bat,這里不介紹windows情況)即可。大概在catalina文件中的第380行和第390行左右,修改如下:

(1)內容:

1
2
org.apache.catalina.startup.Bootstrap  "$@"  start \
>>  "$CATALINA_OUT"  2>&1  "&"

替換為:

1
2
org.apache.catalina.startup.Bootstrap  "$@"  start \
2>&1 | /usr/local/sbin/cronolog  "$CATALINA_BASE/logs/catalina-%Y-%m-%d.out"  &

(2)內容:

1
2
org.apache.catalina.startup.Bootstrap  "$@"  start \
>>  "$CATALINA_OUT"  2>&1  "&"

替換為:

1
2
org.apache.catalina.startup.Bootstrap  "$@"  start \
2>&1 | /usr/local/sbin/cronolog  "$CATALINA_BASE/logs/catalina-%Y-%m-%d.out"  &

配置完成后,重啟tomcat即可!!!!

第4章 定時刪除過期日志

在這里直接使用linux自帶的crontab定時任務工具,設置每天凌晨00:00執行刪除任務,刪除7天以前的日志文件。

1
2
crontab  -e           #<==直接輸入該命令,添加一個定時任務計划
00 00 * * *  /bin/find  /opt/gdyy/tomcat7/logs/  - type  f -mtime +7 |  xargs  rm  -f  &> /dev/null   #<==查找tomcat/logs下面的日志文件,並刪除7天以前的日志,添加完成后保存退出!!
1
2
3
[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日志切割並定時刪除完成!!!

 

 

 

轉自:http://blog.51cto.com/13178102/2070532


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM