Linux系統實現log日誌自動清理html
在實際項目中因爲服務器內存有限,人工制定的定時清理時常會忘記。所以啓用linux系統定時任務去執行日誌清理功能。引用文獻linux
touch /**/**/auto-del-log.sh //建立腳本文件 cd /**/** //進入該目錄 chmod +x auto-del-log.sh //修改執行權限
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 {} \;