想在伺服器上寫一個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
4.新增定時任務內容:
* * * * * /bin/bash /app/web/tomcat-8089/bin/clearlog.sh
完成以上即可。
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