定期刪除OpenResty/Nginx大日志文件的方法
1. 安裝 logrotate 工具
首先,確保系統(tǒng)上已經(jīng)安裝了 logrotate
。在大多數(shù) Linux 發(fā)行版上,可以使用包管理器來安裝:
sudo apt-get install logrotate # 對于 Debian/Ubuntu sudo yum install logrotate # 對于 CentOS/RHEL
2. 配置 logrotate
創(chuàng)建或編輯 logrotate
配置文件。例如,我們可以為 Nginx 日志創(chuàng)建一個自定義的 logrotate
配置文件 /etc/logrotate.d/nginx
:
/var/log/nginx/access.log /var/log/nginx/error.log { daily rotate 14 compress delaycompress missingok notifempty create 0640 www-data adm sharedscripts postrotate [ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid` endscript }
這個配置文件的解釋如下:
/var/log/nginx/access.log /var/log/nginx/error.log
:指定要輪換的日志文件(可以包括多個文件)。daily
:每天輪換日志文件。rotate 14
:保留 14 天的日志文件。compress
:壓縮舊的日志文件。delaycompress
:延遲一個輪換周期再壓縮上一個輪換的日志文件。missingok
:如果日志文件不存在,不會報錯。notifempty
:如果日志文件為空,不會輪換。create 0640 www-data adm
:創(chuàng)建新的日志文件,并設置權(quán)限和所有者。sharedscripts
:確保postrotate
腳本只運行一次,而不是為每個被處理的日志文件運行一次。postrotate
:在日志文件輪換后運行的腳本,kill -USR1
命令通知 Nginx 重新打開日志文件。
markdown 復制代碼 # 定期刪除 OpenResty/Nginx 大日志文件的方法 如果你的日志文件是一個大的單一日志文件,而不是多個文件的形式,你可以使用 `logrotate` 工具來管理和定期刪除舊的日志內(nèi)容。以下是詳細的步驟: ## 1. 安裝 logrotate 工具 首先,確保系統(tǒng)上已經(jīng)安裝了 `logrotate`。在大多數(shù) Linux 發(fā)行版上,可以使用包管理器來安裝: ```bash sudo apt-get install logrotate # 對于 Debian/Ubuntu sudo yum install logrotate # 對于 CentOS/RHEL
3. 配置 logrotate
創(chuàng)建或編輯 logrotate
配置文件。例如,我們可以為 Nginx 日志創(chuàng)建一個自定義的 logrotate
配置文件 /etc/logrotate.d/nginx
:
bash 復制代碼 /var/log/nginx/access.log /var/log/nginx/error.log { daily rotate 14 compress delaycompress missingok notifempty create 0640 www-data adm sharedscripts postrotate [ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid` endscript }
這個配置文件的解釋如下:
/var/log/nginx/access.log /var/log/nginx/error.log
:指定要輪換的日志文件(可以包括多個文件)。daily
:每天輪換日志文件。rotate 14
:保留 14 天的日志文件。compress
:壓縮舊的日志文件。delaycompress
:延遲一個輪換周期再壓縮上一個輪換的日志文件。missingok
:如果日志文件不存在,不會報錯。notifempty
:如果日志文件為空,不會輪換。create 0640 www-data adm
:創(chuàng)建新的日志文件,并設置權(quán)限和所有者。sharedscripts
:確保postrotate
腳本只運行一次,而不是為每個被處理的日志文件運行一次。postrotate
:在日志文件輪換后運行的腳本,kill -USR1
命令通知 Nginx 重新打開日志文件。
4. 測試 logrotate 配置
在應用配置之前,可以使用 logrotate
的 -d
參數(shù)來測試配置文件,而不實際執(zhí)行日志輪換:
sudo logrotate -d /etc/logrotate.d/nginx
如果配置沒有問題,可以手動觸發(fā)一次日志輪換來驗證效果:
sudo logrotate -f /etc/logrotate.d/nginx
5. 確保定期運行 logrotate
logrotate
通常由系統(tǒng)的 Cron 任務定期運行??梢酝ㄟ^查看 /etc/cron.daily/logrotate
來確認這一點:
cat /etc/cron.daily/logrotate
這個文件通常會包含一條執(zhí)行 logrotate
的命令,例如:
/usr/sbin/logrotate /etc/logrotate.conf
通過這種方式,即使你的日志文件是一個大的單一文件,logrotate
也可以幫助你自動管理和定期刪除舊的日志內(nèi)容,確保日志文件不會無限制地增長。
以上就是定期刪除OpenResty/Nginx大日志文件的方法的詳細內(nèi)容,更多關(guān)于刪除OpenResty/Nginx日志文件的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Nginx中使用gzip_http_version解決CDN只支持http 1.0問題
這篇文章主要介紹了Nginx中使用gzip_http_version解決CDN只支持http 1.0問題,問題原因是在Header信息中看到Transfer-Encoding: chunked,使用本文方法就可以解決這個問題,需要的朋友可以參考下2014-09-09當Nginx所在服務器的磁盤空間滿時的影響以及如何避免這一問題
Nginx所在服務器的磁盤空間滿了,會導致日志無法寫入、緩存失效、反向代理請求異常等問題,嚴重時可能導致服務不可用,這篇文章主要介紹了當Nginx所在服務器的磁盤空間滿時的影響以及如何避免這一問題,需要的朋友可以參考下2024-12-12Nginx加固的幾種方式(控制超時時間&限制客戶端下載速度&并發(fā)連接數(shù))
本文主要介紹了Nginx加固的幾種方式,包括控制超時時間,限制客戶端下載速度,并發(fā)連接數(shù)這幾種方式,具有一定的參考價值,感興趣的可以了解一下2024-03-03