Linux下服務器日志清理


  之前在做一個項目,服務器部署在Linux系統(Red Hat 6)下,后來發現服務器運行每天產生大量的日志文件,一個多月產生了60多G的日志文件,消耗巨大的存儲空間。后來就想辦法讓Linux系統自動每天清理十五天以前的日志文件。

  實現過程是寫一個刪除日志的shell腳本,然后利用Linux的crontab設置定時器定時自動執行shell腳本。

  解釋一下,服務器產生的日志放在/home/webServive/log/路徑下。

  使用相關用戶登錄Linux系統,例如我用的用戶是ryan,然后在/home/webServive路徑下新建cleaneLog.sh腳本,編輯相關shell腳本代碼,如下所示。

#!/bin/sh
rm -vrf $(find /home/webServive/log/ -type d -mtime +15) and
rm -vrf $(find /home/webServive/log/ -type f -mtime +15) and
echo "Successfully deleted service logs."

  rm -vrf $(find /home/webServive/log/ -type d -mtime +15)是先找到 /home/webServive/log/路徑下十五天之前建立的文件夾,然后刪除,刪除文件夾以及文件夾下面的文件。

  rm -vrf $(find /home/webServive/log/ -type f -mtime +15)是先找到 /home/webServive/log/路徑下十五天之前建立的文件,然后刪除。

  使用終端找到cleanLog.sh所在路徑,然后執行chmod u+x cleanLog.sh命令為文件的所有者增加可執行權限。

  將終端切換到root用戶,執行crontab -u ryan –e為ryan用戶添加定時器,編輯定時內容,每天凌晨2.15分執行cleanLog.sh腳本清理日志文件。

  15 2 * * * /bin/sh /home/webServive/cleanLog.sh

  保存好定時內容后,執行以下腳本重啟定時器,使其生效。

  cd /sbin/

    service crond restart


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM