Linux下伺服器日誌清理
阿新 • • 發佈:2018-11-11
之前在做一個專案,伺服器部署在Linux系統下,後來發現伺服器執行每天產生大量的日誌檔案,一個多月產生了60多G的日誌檔案,消耗巨大的儲存空間。後來就想辦法讓Linux系統自動每天清理7天以前的日誌檔案。
實現過程是寫一個刪除日誌的shell指令碼。
解釋一下,伺服器產生的日誌放在/home/webServive/logs路徑下。
使用相關使用者登入Linux系統,例如我用的使用者是ryan,然後在/home/webServive路徑下新建logs.sh指令碼,編輯相關shell指令碼程式碼,如下所示。此處的角標表示的是你在此伺服器下部署的應用數量,我這裡是三臺;
#!/bin/bashlogs_paths[0]="/home/webServive
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 此網址是網上所找,大家可以借鑑;