1. 程式人生 > >Linux下伺服器日誌清理

Linux下伺服器日誌清理

之前在做一個專案,伺服器部署在Linux系統下,後來發現伺服器執行每天產生大量的日誌檔案,一個多月產生了60多G的日誌檔案,消耗巨大的儲存空間。後來就想辦法讓Linux系統自動每天清理7天以前的日誌檔案。

  實現過程是寫一個刪除日誌的shell指令碼。

  解釋一下,伺服器產生的日誌放在/home/webServive/logs路徑下。

  使用相關使用者登入Linux系統,例如我用的使用者是ryan,然後在/home/webServive路徑下新建logs.sh指令碼,編輯相關shell指令碼程式碼,如下所示。此處的角標表示的是你在此伺服器下部署的應用數量,我這裡是三臺;

#!/bin/bash
logs_paths[0]="/home/webServive
/logs"
logs_paths[1]="/home/webServive/logs "logs_paths[2]="/home/webServive/logs"

     for logs_path  in ${logs_paths[@]};
   do
        find $logs_path -mtime +7 -name "localhost_access_log.*.txt" -exec rm -rf {} \;
        find $logs_path -mtime +7 -name "catalina.*.log" -exec rm -rf {} \;
        find $logs_path -mtime +7 -name "manager.*.log" -exec rm -rf {} \;
        find $logs_path -mtime +7 -name "host-manager.*.log" -exec rm -rf {} \;
        find $logs_path -mtime +7 -name "localhost.*.log" -exec rm -rf {} \;
     #備份日誌
        cp   $logs_path/catalina.out  $logs_path/catalina.`date +%Y-%m-%d`.log
        #清空日誌 
      cat /dev/null > $logs_path/catalina.out
    echo $logs_path
done

以上是指令碼內容; 儲存檔案;

授權
chmod 777 /home/logs.sh


載入定時
crontab -e
30 23 * * * sh /home/logs.sh                                              注:此處的時間是每天23點30分定時清理


重啟定時檔案
service crond restart  



https://www.cnblogs.com/lzhryan/articles/6888128.html      此網址是網上所找,大家可以借鑑;