定時清理tomcat日誌文件

 

 

需求:最近公司服務器發現磁盤常常會被佔滿,查其緣由是由於大量的日誌文件。全部須要天天定時去清理過時的日誌文件html

 

一:編寫腳本java

[html] view plain copyexpress

  1. [root@localhost home]# vim clean_catalina.sh  


添加內容以下:vim

[html] view plain copytomcat

  1. # 刪除 /opt/java/tomcat7/logs/下5天前,文件名稱包含"201"的logs  
  2. find /opt/java/tomcat7/logs/ -mtime +5 -name "*201?*" -exec rm -rf {} \;  
  3.   
  4. # 清空 /opt/java/tomcat7/logs/下的catalina.out  
  5. echo " " > /opt/java/tomcat7/logs/catalina.out  

 

 

二:設置定時執行clean_catalina.sh腳本服務器

 

 

[html] view plain copyide

  1. [root@localhost home]# crontab -e  


添加內容以下:日誌

[html] view plain copyorm

  1. 10 0 * * * /home/clean_catalina.sh  

 


三:使用 crontab -l 命令查看是否設置成功htm

[html] view plain copy

  1. [root@localhost home]# crontab -l  
  2. 10 0 * * * /home/clean_catalina.sh  

 

 

詳解 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就是所要執行的程序,如haha.sh。
M:分鐘(0-59)
H:小時(0-23)
D:日期(1-31)
m:月份(1-12)
d:一個星期中的某天(0-6,0表明週日)
 
這5個時間字段用空格隔開,其值能夠是一個數字,也能夠用逗號隔開的多個數字(或其餘) ,若是不需設置,則默認爲「*」。
 
例如,天天的8點5分執行haha.sh,就是「5 8 * * * /opt/./haha.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 /opt/java/tomcat7/logs/ -mtime +5 -name "*201?*" -exec rm -rf {} \;

查找出符合條件的日誌文件並刪除

相關文章
相關標籤/搜索