linux實現shell指令碼監控磁碟記憶體達到閾值時清理catalina.out日誌

朱季謙發表於2020-07-24

想在伺服器上寫一個shell指令碼,在磁碟使用率達到80%時,自動清理掉一些沒有用的日誌檔案,根據這個想法,在生產環境上寫了一個以下指令碼,按照該流程,可實現在linux環境做一個定時任務來執行shell指令碼,監控磁碟記憶體,當到達80%時,將自動清空catalina.out的日誌檔案。

1.進入到tomcat的bin目錄執行以下操作:

#touch clearlog.sh

#vim clearlog.sh

  1 #!/bin/bash
  2 maxUsed=$(df -h|grep /dev/sda1|awk -F'[ %]+' '{print $5}')
  3 val=80
  4 if [ "$maxUsed" -gt "$val" ];then
  5 cat /dev/null
  6 >/app/web/tomcat-8089/logs/catalina.out
  7 echo "clear success  catalina.out end"
  8 fi

2.給指令碼加上可執行許可權:chmod 777 clearlog.sh

3.執行crontab –e

clipboard

4.新增定時任務內容:

* * * * * /bin/bash /app/web/tomcat-8089/bin/clearlog.sh

image

完成以上即可。

5.最後執行#tail -500f /var/spool/mail/root可檢視定時任務執行情況。

按照舉一反三的學習態度,其他時間的定時任務設定,可參考以下內容:

  1 例項1:每1分鐘執行一次cmd
  2 * * * * * cmd
  3 
  4 例項2:每小時的第3和第15分鐘執行
  5 3,15 * * * * cmd
  6 
  7 例項3:在上午8點到11點的第3和第15分鐘執行
  8 3,15 8-11 * * * cmd
  9 
 10 例項4:每隔兩天的上午8點到11點的第3和第15分鐘執行
 11 3,15 8-11 */2  *  * cmd
 12 
 13 例項5:每週一上午8點到11點的第3和第15分鐘執行
 14 3,15 8-11 * * 1 cmd
 15 
 16 例項6:每晚的21:30執行
 17 30 21 * * * cmd
 18 
 19 例項7:每月1、10、22日的4 : 45執行
 20 45 4 1,10,22 * * cmd
 21 
 22 例項8:每週六、週日的1 : 10執行
 23 10 1 * * 6,0 cmd
 24 
 25 例項9:每天18 : 00至23 : 00之間每隔30分鐘執行
 26 */30 18-23 * * * cmd
 27 
 28 例項10:每星期六的晚上11 : 00 pm執行
 29 0 23 * * 6 cmd
 30 
 31 例項11:每一小時執行
 32 0 */1 * * * cmd
 33 
 34 例項12:晚上11點到早上7點之間,每隔一小時執行
 35 0 23-7 * * * cmd

參考:https://www.cnblogs.com/qfdxxdr/p/6380783.html


相關文章