Linux**系統實現log日誌自動清理

Linux系統實現log日誌自動清理html

Linux系統實現log日誌自動清理

背景簡介

在實際項目中因爲服務器內存有限,人工制定的定時清理時常會忘記。所以啓用linux系統定時任務去執行日誌清理功能。引用文獻linux

建立shell腳本及執行權限

touch /**/**/auto-del-log.sh    //建立腳本文件
cd /**/**                       //進入該目錄
chmod +x auto-del-log.sh        //修改執行權限

編輯shell腳本

vi auto-del-log.sh              //編輯執行文件

#!/bin/sh
find /**/**/logs/ -mtime +10  -name "*.log.*" -exec rm -rf {} \;

添加到自動更新腳本

crontab -e

添加執行shell腳本git

30 0 * * * /**/**/auto-del-log.sh

crontab樣式註釋: # For details see man 4 crontabsgithub

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

shell腳本說明:web

說明:  
find:Linux查找命令,用戶查找指定條件的文件  
/home/apache-tomcat-7.0.55-13-990*/webapps/HollyProxyServer2.0/WEB-INF/logs/:須要進行清理的目標目錄  
-mtime:標準語句寫法  
+10 :數字表明天數  
-name "*.log.*":目標文件的類型,帶有log的全部文件  
-exec:固定寫法  
rm -rf:強制刪除包括目錄在內的文件  
{} \;:固定寫法,一對大括號+空格+\+;  

eg:
find /usr/local/tomcat/logall/monitor/ -mtime +7  -name "*.log.*" -exec rm -rf {} \;

舉例說明

#!/bin/sh

log_path=/home/tomcat/logs      //日誌存放目錄
d=`date +%Y-%m-%d`              //時間獲取
d90=`date -d'7 day ago' +%Y-%m-%d`    //獲取刪除時間7天前
cd ${log_path} && cp catalina.out $log_path/cron/catalina.out.$d.log             //catalina.out文件分割,複製文件到 $log_path/cron/ 目錄下生成新的日誌文件
echo > catalina.out          //新的空白catalina.out文件繼續記錄日誌
rm -rf $log_path/cron/catalina.out.${d90}.log       //刪除超時文件

find ${log_path} -mtime +7  -name "*.*.log" -exec rm -rf {} \;             //刪除${log_path}目錄下超過7天格式爲"*.*.log"的文件
find /home/tomcat/logall/monitor/ -mtime +7  -name "*.log.*" -exec rm -rf {} \;
find /home/tomcat/logall/user/ -mtime +7  -name "*.log.*" -exec rm -rf {} \;
find /home/tomcat/logall/admin/ -mtime +7  -name "*.log.*" -exec rm -rf {} \;
相關文章
相關標籤/搜索