以下腳本主要備份的日志文件為tomcat的catalina.out、localhost_access_log.yyyy-mm-dd.log日志和項目的日志文件,其中項目的日志文件格式為"projectname-yyyy-mm-dd.log",以下為備份腳本,具體的操作都有相應的注釋,供大家參考,具體情況請根據日志文件的格式和要求來使用本腳本。
#!/bin/sh####### 日志定時運行時間為每天0點1分# 刪除20天之前的日志文件,壓縮一周之前的日志文件# 日志文件時間是根據日志名稱后面的日期來計算# 運行腳本注意日志文件中是否有其他相同后綴的非日志文件和日志文件名稱是否符合要求#######日志文件所在目錄path=/home/tomcat/apache-tomcat-project/logs#進入日志目錄cd $path#catalina.out日志文件備份#獲取前一天的日期bak_date=`date +%Y-%m-%d -d "1 days ago"`#備份catalina.out日志,后面添加日期cp catalina.out catalina.out.$bak_date.log#清空catalina.out日志文件echo > catalina.out#20天之前的日志文件刪除#獲取20天之前的日期del_date=`date +%Y-%m-%d -d "20 days ago"`#獲取文件名中的日期字符串,然后對比時間進行相應的操作,localhost_access_log的后綴文件名一般是txt,這里包括txt文件for n in `ls *.log *.txt -1`;dom=`echo $n | awk -F. '{print $(NF-1)}'`m=`echo ${m:0-10}`if [[ $m < $del_date || $m = $del_date ]];thenecho file $n will be deleted.rm -rf $nfidone#一周之前的文件壓縮#獲取一周之前的日期zip_date=`date +%Y-%m-%d -d "7 days ago"`#獲取文件名中的日期字符串,然后對比時間進行相應的操作for n in `ls *.log *.txt -1`;dom=`echo $n | awk -F. '{print $(NF-1)}'`m=`echo ${m:0-10}`echo $n $mif [ ! $m ]; thenecho "IS NULL"continuefiif [[ $m < $zip_date || $m = $zip_date ]];thenecho file $n will be zip.zip $n.zip $nrm -rf $nfidone
以上所述是小編給大家介紹的Tomcat日志文件定時清理備份的腳本,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VEVB武林網網站的支持!
新聞熱點
疑難解答
圖片精選