Linux定時刪除n天前日志


1、實例命令:
 
          
# find 對應目錄 -mtime +天數 -name "文件名" -exec rm -rf {} \;
find /data/tomcat/logs/ -mtime +30 -name "*.log" -exec rm -rf {} \;
說明:
將/data/tomcat/logs/ 目錄下所有30天前帶”.log”的文件刪除。

2、計划任務(升級):
若嫌每次手動執行語句太麻煩,可以將這小語句寫到一個可執行shell腳本文件中,再設置cron調度執行,那就可以讓系統自動去清理相關文件。
2.1 創建shell:
新建一個可執行文件 auto-del-30-days-ago-log.sh 並分配可運行權限
touch /opt/auto-del-30-days-ago-log.sh
chmod +x auto-del-30-days-ago-log.sh

2.2 編輯shell腳本(auto-del-30-days-ago-log.sh):

1、打開編輯器
vi auto-del-30-days-ago-log.sh

2、輸入以下內容

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

3、保存退出(:wq!)。

2.3 計划任務:
1、將auto-del-30-days-ago-log.sh執行腳本加入到系統計划任務
#crontab -e

2、設置是每天凌晨0點10分執行auto-del-30-days-ago-log.sh文件進行數據清理:

10 0 * * * /opt/auto-del-30-days-ago-log.sh >/dev/null 2>&1

2.4 啟動任務:重啟crond:

service crond restart 
#centos7 請執行 systemctl restart crond

 

2.5 瞄一眼是否已經開始任務:
crontab -l
PS: 如果需要查看定時任務執行日志:
cat /var/log/cron
完成以上三步,媽媽再也不用擔心我的硬盤空間滿了,不用手動清理日志文件了
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM