TOMCAT 日志自動刪除


TOMCAT 日志自動刪除

背景

生產環境中tomcat每天都會產生很多日志,如果不清理磁盤容量會不夠,手動清理又太麻煩。因此寫個腳本每天定時去刪除5天前(根據實際情況而定)的日志文件。

 

編寫腳本

1.寫一個/usr/local/script/cleanTomcatlog.sh腳本

#!/bin/bash
export LANG=zh_CN
#tomcat1日志文件路徑
export WEB_TOMCAT1=/usr/local/tomcat1/logs
#tomcat2日志文件路徑
export WEB_TOMCAT2=/usr/local/tomcat2/logs
#tomcat3日志文件路徑
export WEB_TOMCAT3=/usr/local/tomcat3/logs
echo > ${WEB_TOMCAT1}/catalina.out
echo > ${WEB_TOMCAT2}/catalina.out
echo > ${WEB_TOMCAT3}/catalina.out
find ${WEB_TOMCAT1}/* -mtime +5 -type f -exec rm -f {} \;
find ${WEB_TOMCAT2}/* -mtime +5 -type f -exec rm -f {} \;
find ${WEB_TOMCAT3}/* -mtime +5 -type f -exec rm -f {} \;

2.設置cleanTomcatlog.sh腳本可執行

chmod a+x cleanTomcatlog.sh

3.在控制台上輸入以下命令

  crontab -e

4.按i鍵編輯這個文本文件,輸入以下內容,每天凌晨4:30重啟tomcat

按esc鍵退出編輯,輸入wq回車保存

  30 04 * * * /usr/local/script/cleanTomcatlog.sh

按esc鍵退出編輯,輸入wq回車保存

5.重啟定時任務

[root@]# service crond stop

[root@]# service crond start

 

名稱解釋

詳解 crontab 和 find 命令

crontab

通過crontab可以設定程序的執行時間表,例如讓程序在每天的8點,或者每個星期一的10點執行一次。
crontab -l 列出時間表;
crontab -e編輯時間表;
crontab -d刪除時間表;

“-l”沒什么可說的,就是一個查看而已;
“-e”是編輯,和vi沒什么差別(其實就是用vi編輯一個特定文件);
“-d”基本不用,因為它把該用戶所有的時間表都刪除了,一般都是用“-e”編輯把不要了的時間表逐行刪除;

那到底該如何編輯呢?

crontab文件的格式是:M H D m d CMD。
一個6個字段,其中最后一個CMD就是所要執行的程序,如cleanTomcatlog.sh。
M:分鍾(0-59)
H:小時(0-23)
D:日期(1-31)
m:月份(1-12)
d:一個星期中的某天(0-6,0代表周日)

這5個時間字段用空格隔開,其值可以是一個數字,也可以用逗號隔開的多個數字(或其他) ,如果不需設置,則默認為“*”。

例如,每天的04點30分執行cleanTomcatlog.sh,就是==30 04 * * * /usr/local/script/cleanTomcatlog.sh==。

 

find

基本格式:find  path expression
1.按照文件名查找
(1)find / -name httpd.conf  #在根目錄下查找文件httpd.conf,表示在整個硬盤查找
(2)find /etc -name httpd.conf  #在/etc目錄下文件httpd.conf
(3)find /etc -name '*srm*'  #使用通配符*(0或者任意多個)。表示在/etc目錄下查找文件名中含有字符串‘srm’的文件
(4)find . -name 'srm*'   #表示當前目錄下查找文件名開頭是字符串‘srm’的文件

2.按照文件特征查找     

(1)find / -amin -10   # 查找在系統中最后10分鍾訪問的文件(access time)
(2)find / -atime -2   # 查找在系統中最后48小時訪問的文件
(3)find / -empty   # 查找在系統中為空的文件或者文件夾
(4)find / -group cat   # 查找在系統中屬於 group為cat的文件
(5)find / -mmin -5   # 查找在系統中最后5分鍾里修改過的文件(modify time)
(6)find / -mtime -1   #查找在系統中最后24小時里修改過的文件
(7)find / -user fred   #查找在系統中屬於fred這個用戶的文件
(8)find / -size +10000c  #查找出大於10000000字節的文件(c:字節,w:雙字,k:KB,M:MB,G:GB)
(9)find / -size -1000k   #查找出小於1000KB的文件

3.可以對查找到的文件在進行操作

-exec command;
查找並執行命令
-fprint file
打印文件完整文件名
-fprintf file format
打印文件格式
-ok command;
給用戶命令執行操作,根據用戶的Y 確認輸入執行
-ls
打印同種文件格式的文件.

例如:

find / -name "*xxx*" -ls

查找根目錄下名稱包含xxx的文件並顯示信息

find /usr/local/tomcat1/logs/ -mtime +5 -name "*201?*" -exec rm -rf {} \;

查找出符合條件的日志文件並刪除所有的時間表都刪除了,一般都是用“-e”編輯把不要了的時間表逐行刪除;

 


免責聲明!

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



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