1. 程式人生 > >shell腳本切割tomcat日誌文件

shell腳本切割tomcat日誌文件

下使用 調試 awk mkdir cat size 內容 monit 日誌文件

轉自:http://www.cnblogs.com/lishun1005/p/6054816.html

鑒於在調試logback和log4j的文件切割一直無法成功,隨性用shell寫個腳本用來切割tomcat下的日誌文件(大家如果有在logback或log4j使用文件切割成功的話,可以留下使用方式,先謝謝了)

1:廢話少說,直接貼上腳本:

#!/bin/sh
log_dir=/var/log/tomcat
monitor_file=$1 #tomcat目錄下的catalina.out文件的絕對路徑
file_size=`du  -m $monitor_file | awk ‘{print $1}‘`
if [ $file_size -ge  100 ]
then
        if [ ! -d $log_dir ]
        then
                mkdir /var/log/tomcat   #創建保存切割文件目錄,這個路徑可以自行修改,保存到你想要的目錄
        fi
        cp $1 /var/log/tomcat/log-`date +%Y-%m-%d-%H%M%S`.log   #保存日誌文件
        echo `date +%Y-%m-%d-%H:%M:%S`":文件切割"  >>/var/log/tomcat/split.log  #記錄切割日誌
        echo "" > $1    #清空tomcat的log/catalina.out文件內容
fi

說明:這個腳本很簡單,linux用個定時器沒分鐘定時掃描日誌文件的大小,就是當文件大於100M的時候,先把文件復制到指定的目錄,再清空原先tomcat的日誌文件。這裏是用crontab來使用定時器,至於這個命令的語法在這裏就不多說,有興趣的可以自行google,這裏還是有個小小的不足,因為是按每分鐘定時去掃描日誌文件,所以最後切割文件大小還是會在100~102M之間。

然後就用定時器,定時執行這個腳本

2:用 crontab -e 編輯定時器代碼

*/1 * * * *  sh /lee_js/monitor_script.sh  /opt/apache-tomcat-7.0.67/logs/catalina.out #第一個路徑是腳本的路徑,第二個參數是tomcat下catalina.out文件的絕對路徑

然後保存

至此搞定日誌切割

註:若沒有crontab命令 可使用 yum安裝:

yum install vixie-cron
yum install crontabs

若文章在表述和代碼方面如有不妥之處,歡迎批評指正。留下你的腳印,歡迎評論!希望能互相學習

shell腳本切割tomcat日誌文件