以下指令碼主要備份的日誌檔案為tomcat的catalina.out、localhost_access_log.yyyy-mm-dd.log日誌和專案的日誌檔案,其中專案的日誌檔案格式為"projectname-yyyy-mm-dd.log",以下為備份指令碼,具體的操作都有相應的注釋,供大www.cppcns.com家參考,具體情況請根據日誌檔案的格式和要求來使用本指令碼。
#!/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`;do
m=`echo $n | awk -f. ''`
m=`echo $`
if [[ $m < $del_date || $m = $del_date ]];then
echo file $n will be deleted.
rm -rf $n
fidone
#一周之前的檔案壓縮
#獲取一周之前的日期
zip_date=`date +%y-%m-%d -d "7 days ago"`
#獲取檔名中的日期字串,然後對比時間進行相應的操作
for n in `ls *.log *.txt -1`;do
m=`echo $n | awk -f. ''`
m=`echo $`
echo $n $m
if [ ! $m ]; then
echo "is null"
continue
fiif [[ $m < $zip_date || $m = $zip_date ]];then
echo file $n will be zip.
zip $n.zip $n
rm -rf $n
fidone
以上所述是小編給大家介紹的tomcat日誌檔案定時清理備份的指令碼,希望對大家有所幫助,如果大www.cppcns.com家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對我們**的支援!
本文標題: tomcat日誌檔案定時清理備份的指令碼
本文位址:
Tomcat日誌拆分與定時清理
linux上tomcat的日誌輸出在catalina.out裡面,時間久了tomcat 的catalina.out日誌檔案不斷擴大,導致系統磁碟空間邊變小,對系統的穩定性造成影響。目前的解決方案是用cronolog對catalina.out日誌進行按日切割,然後寫shell指令碼通過定時任務定時刪除...
定時刪除日誌檔案 linux定時清理日誌
linux是乙個很能自動產生檔案的系統,日誌 郵件 備份等。雖然現在硬碟廉價,我們可以有很多硬碟空間供這些檔案浪費,讓系統定時清理一些不需要的檔案很有一種爽快的事情。不用你去每天惦記著是否需要清理日誌,不用每天收到硬碟空間不足的報警簡訊,想好好休息的話,讓我們把這個事情交給機器定時去執行吧。1.刪除...
定時刪除日誌檔案 linux定時清理日誌
linux是乙個很能自動產生檔案的系統,日誌 郵件 備份等。雖然現在硬碟廉價,我們可以有很多硬碟空間供這些檔案浪費,讓系統定時清理一些不需要的檔案很有一種爽快的事情。不用你去每天惦記著是否需要清理日誌,不用每天收到硬碟空間不足的報警簡訊,想好好休息的話,讓我們把這個事情交給機器定時去執行吧。1.刪除...