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