1. 程式人生 > 實用技巧 >centos7-nginx 日誌手動或定時清理

centos7-nginx 日誌手動或定時清理

目錄

一、手動清理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日誌按天拆分與定期清除。