centos7-nginx 日誌手動或定時清理
阿新 • • 發佈:2020-08-10
目錄
一、手動清理nginx日誌方式
mv /usr/local/nginx/logs/access.log /usr/local/nginx/logs/access.log.bak #重新命名日誌檔案 mv /usr/local/nginx/logs/error.log /usr/local/nginx/logs/error.log.bak #重新命名日誌檔案 /usr/local/nginx/sbin/nginx -s reopen #重執行生成日誌檔案 rm -rf /usr/local/nginx/logs/access.log.bak #刪除舊檔案 rm -rf /usr/local/nginx/logs/error.log.bak #刪除舊檔案
二、nginx日誌定時清理方式
cd /usr/local/nginx/logs/ vim del_logs.sh #寫入下面內容 #!/bin/bash # 先複製原來的錯誤日誌檔案,請根據自己實際的日誌路徑填寫 cp /usr/local/nginx/logs/error.log /usr/local/nginx/logs/error-$(date -d "yesterday" +"%Y%m%d").log # 清空錯誤日誌檔案 cat /dev/null > /usr/local/nginx/logs/error.log # 先複製原來的訪問日誌 cp /usr/local/nginx/logs/access.log /usr/local/nginx/logs/access-$(date -d "yesterday" +"%Y%m%d").log # 清空原來的正常訪問日誌 cat /dev/null > /usr/local/nginx/logs/access.log # 定期刪除七天前的日誌檔案 find /usr/local/nginx/logs -mtime 7 -type f -name \*.log | xargs rm -rf
新增可執行許可權
chmod +x del_logs.sh
新增Linux計劃任務
crontab -e
寫入下面內容
#每天0點執行日誌清理指令碼
0 0 * * * /usr/local/nginx/logs/del_logs.sh
儲存後退出。
重啟crond服務
systemctl restart crond
檢視排程計劃
crontab -l
完成nginx日誌按天拆分與定期清除。