Linux應用總結:自動刪除n天前日誌

來源:互聯網
上載者:User

  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檔案進行資料清理任務了。

  完成以上三步,你就再也不每天惦記是否硬碟空間滿了,該清理記錄檔了,再也不會受到伺服器硬碟空間不足的警示資訊了,放心的去看書喝咖啡去吧!

來自:http://www.cnblogs.com/peida/archive/2013/03/25/2980121.html

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.