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.計畫任務:
若嫌每次手動執行語句太麻煩,可以將這小語句寫到乙個可執行
shell指令碼
檔案中,再設定cron排程執行,那就可以讓系統自動去清理相關檔案。
2.1建立shell:
touch /opt/
soft
/bin/auto-del-30-days-ago-log.sh
chmod +x auto-del-30-days-ago-log.sh
新建乙個可執行檔案auto-del-30-days-ago-log.sh
,並分配可執行許可權
2.2編輯shell指令碼:
vi auto-del-30-days-ago-log.sh
編輯auto-del-30-days-ago-log.sh檔案如下:
#!/bin/sh
find /opt/
soft
/log/ -mtime +30 -name "*.log" -exec rm -rf {} \;
ok,儲存退出(:wq)
。2.3計畫任務:
#crontab -e
將auto-del-30-days-ago-log.sh執行指令碼加入到系統計畫任務,到點自動執行
輸入:10 0 * * * /opt/
soft
/log/auto-del-7-days-ago-log.sh >/dev/null 2>&1
這裡的設定是每天凌晨0點10分執行auto-del-7-days-ago-log.sh檔案進行資料清理任務
了。**:
Linux下刪除日誌檔案
日誌檔名如 2020 11 11.log 2020 11 20.log 1.刪除比當前時間小的日誌檔案 成功的指令碼。目的 是刪除比當前時間小的日誌檔案 執行指令碼的方式 sh auto del log.sh doudou centosaly workspace cat b auto del log...
Linux定時刪除日誌檔案
刪除建立時間大於30天的檔案命令 find 目錄 mtime 建立時間 name 檔名 exec rm rf 建立shell檔案 auto del 30 days ago log.sh 指令碼內容 bin sh find opt soft log mtime 30 name log exec rm ...
Linux環境下刪除歸檔日誌
我們都都知道在controlfile中記錄著每乙個archivelog的相關資訊,當然們在os下把這些物理檔案delete掉後,在我們的 controlfile中仍然記錄著這些archivelog的資訊,在oracle的oem管理器中有視覺化的日誌展現出,當我們手工清除archive目錄下的檔案後,...