天天看點

Linux日志檔案定時清理

1.查找并删除檔案指令:

find 對應目錄 -mtime +天數 -name "檔案名" -exec rm -rf {} \;

執行個體指令:

find /opt/soft/log/ -mtime +30 -name "*.log" -exec rm -rf {} \;

說明:

将/opt/soft/log/目錄下所有30天前帶".log"的檔案删除。具體參數說明如下:

find:linux的查找指令,使用者查找指定條件的檔案;

/opt/soft/log/:想要進行清理的任意目錄;

-mtime:标準語句寫法;

+30:查找30天前的檔案,這裡用數字代表天數;

"*.log":希望查找的資料類型,"*.jpg"表示查找擴充名為jpg的所有檔案,"*"表示查找所有檔案,這個可以靈活運用,舉一反三;

-exec:固定寫法;

rm -rf:強制删除檔案,包括目錄;

{} \; :固定寫法,一對大括号+空格+\+; 

2.設定計劃任務:

#crontab -e

将auto-del-30-days-ago-log.sh執行腳本加入到系統計劃任務,到點自動執行

輸入:

10 0 * * * /opt/soft/log/auto-del-7-days-ago-log.sh

這裡的設定是每天淩晨0點10分執行auto-del-7-days-ago-log.sh檔案進行資料清理任務了。

3.crontab定時任務簡單設定方法

  • crontab -e (任何使用者都可以編輯)

*  *  *  *  *   command

分  時  日   月  周  指令 

第1清單示分鐘1~59 每分鐘用*或者 */1表示 

第2清單示小時1~23(0表示0點)每小時用*或者*/1表示

第3清單示日期1~31 

第4清單示月份1~12 

第5列辨別号星期0~6(0表示星期天) 

第6列要運作的指令 

  • 直接編輯 /etc/crontab (需用root執行,可以給其他使用者添加定時任務)

# 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