定時清理tomcat日誌文件

一、問題描述

       由於最近公司阿里雲服務器磁盤經常被佔滿,發現是由於生成大量的日誌文件導致的(特別的記錄服務之間心跳的日誌,每天好幾個G),所有需要每天定時去清理日誌文件。

二、編寫清理文件腳本

       

vi auto_del_15_days_ago_log.sh  

#清理多個應用的日誌文件
find /xxx/xxx/xxx/Tomcat/logs -mtime +15 -name "*201*" -exec rm -rf {} \;
find /xxx/xxx/xxx/logs -mtime +15 -name "*201*" -exec rm -rf {} \;
find /xxx/xxx/xxx/Tomcat/logs -mtime +15 -name "*201*" -exec rm -rf {} \;
find /xxx/xxx/xxx/bin -mtime +15 -name "*201*" -exec rm -rf {} \;

       修改該腳本文件的權限:

chmod +x auto_del_15_days_ago_log.sh 

三、設置定時執行auto_del_15_days_ago_log.sh 

#這是執行計劃
crontab -e       
#將   執行腳本加入到系統計劃任務,到點自動執行
10 0 * * * /xxx/xxx/auto_del_15_days_ago_log.sh  >/dev/null 2>&1

       這裏的設置是每天凌晨0點10分執行auto_del_15_days_ago_log.sh 文件進行數據清理任務了。

關於 >/dev/null 2>&1 簡介:
linux在執行shell命令之前,就會確定好所有的輸入輸出位置,並且從左到右依次執行重定向的命令,所以>/dev/null 2>&1的作用就是讓標準輸出重定向到/dev/null中(丟棄標準輸出),然後錯誤輸出由於重用了標準輸出的描述符,所以錯誤輸出也被定向到了/dev/null中,錯誤輸出同樣也被丟棄了。執行了這條命令之後,該條shell命令將不會輸出任何信息到控制檯,也不會有任何信息輸出到文件中。

四、查看定時任務是否設置成功

crontab -l  

 

 

       完成以上步驟,服務器就會定期清理這部分日誌了,基本上不會再收到服務器磁盤空間不足類的報警信息了,哈哈。。。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章