精品一区二区视频I日韩资源视频I人人干在线I天天干夜夜干I国产精品九色I日本最新中文字幕

您現在的位置:新疆網站建設-新疆網站制作-新疆二域設計>> 幫助中心>服務器相關>> Nginx如何設置自動清理日志?

Nginx如何設置自動清理日志?

作者:管理員  來源:互聯網  發布時間:2025-11-10 10:10:24  點擊數:0

在Nginx中,日志文件(包括訪問日志和錯誤日志)會不斷增長,如果不進行清理,可能會占用大量磁盤空間。以下是如何設置自動清理Nginx日志的幾種方法:


方法一:使用 logrotate


1:創建 logrotate 配置文件

sudo nano /etc/logrotate.d/nginx


2:添加以下配置內容

/var/log/nginx/*.log {
    daily
    missingok
    rotate 52
    compress
    delaycompress
    notifempty
    create 0640 www-data adm
    sharedscripts
    postrotate
        if [ -f /var/run/nginx.pid ]; then
            kill -USR1 `cat /var/run/nginx.pid`
        fi
    endscript
}


配置參數說明:

daily:每天輪轉

missingok:如果日志文件不存在也不報錯

rotate 52:保留52個備份文件(約2個月)

compress:壓縮舊的日志文件

delaycompress:延遲壓縮前一個日志文件

notifempty:空文件不輪轉

create 0640 www-data adm:創建新文件的權限和屬主

postrotate:輪轉后執行的命令,重新打開日志文件


方法二:手動配置更頻繁的輪轉


如果需要更頻繁的輪轉,可以修改配置:

/var/log/nginx/*.log {
    hourly
    missingok
    rotate 168  # 保留7天的每小時日志
    compress
    delaycompress
    notifempty
    create 0640 nginx nginx
    sharedscripts
    postrotate
        /bin/kill -USR1 $(cat /var/run/nginx.pid 2>/dev/null) 2>/dev/null || true
    endscript
}


方法三:使用 crontab 自定義清理腳本


1:創建清理腳本

sudo nano /usr/local/bin/nginx_log_clean.sh
#!/bin/bash

# 清理超過30天的Nginx日志文件
find /var/log/nginx/ -name "*.log.*" -type f -mtime +30 -delete

# 重新加載Nginx(如果需要)
# systemctl reload nginx


2:給腳本執行權限

sudo chmod +x /usr/local/bin/nginx_log_clean.sh


3:添加到 crontab

sudo crontab -e


添加以下行(每天凌晨2點執行)

0 2 * * * /usr/local/bin/nginx_log_clean.sh


推薦使用 方法一(logrotate),這是最標準且可靠的日志管理方式。


關鍵字: Nginx 自動清理 日志

上一篇:Windows如何遠程國產麒麟操作系統
下一篇:Linux系統命令:主機狀態監控、環境變量、文件傳輸及壓縮和解壓縮

版權所有 新疆二域信息技術有限公司 All Rights Reserved 地址:烏魯木齊市北京南路高新街217號盈科廣場B座615 備案號:新ICP備14003571號-6 新公網安備 65010402000050號