Linux日誌定時清理

2021-07-23 13:16:02 字數 1753 閱讀 9048

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,並分配可執行許可權

vi 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

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

測試

新建立的cron job,不會馬上執行,至少要過2分鐘才執行。如果重啟cron則馬上執行。

/sbin/service crond restart

crontab中的同步任務時而成功,時而不成功,什麼原因呢?定位問題的關鍵點,就要通過日誌來分析……

1.  linux

看 /var/log/cron這個檔案就可以,可以用tail -f /var/log/cron觀察

2.  unix

在 /var/spool/cron/tmp檔案中,有crout***001864的tmp檔案,tail 這些檔案就可以看到正在執行的任務了。

3. mail任務

在 /var/spool/mail/root 檔案中,有crontab執行日誌的記錄,用tail -f /var/spool/mail/root 即可檢視最近的crontab執**況。

Linux日誌定時清理

linux是乙個很能自動產生檔案的系統,日誌 郵件 備份等。雖然現在硬碟廉價,我們可以有很多硬碟空間供這些檔案浪費,讓系統定時清理一些不需要的檔案很有一種爽快的事情。不用你去每天惦記著是否需要清理日誌,不用每天收到硬碟空間不足的報警簡訊,想好好休息的話,讓我們把這個事情交給機器定時去執行吧。1.刪除...

linux日誌定時清理

find 對應目錄 mtime 天數 name 檔名 exec rm rf find linux的查詢命令,使用者查詢指定條件的檔案 opt soft log 想要進行清理的任意目錄 mtime 標準語句寫法 30 查詢30天前的檔案,這裡用數字代表天數 log 希望查詢的資料型別,jpg 表示查詢...

linux定時清理日誌

最近老是出現gc日誌把磁碟佔滿,導致服務不可用,每次手動清理麻煩,可以通過寫乙個指令碼執行,再也不用擔心日誌爆滿的問題。1 建立shell vim opt auto del log.sh bin sh find var openebs local name gc.log exec rm rf 2 分...