定期刪除OpenResty/Nginx大日志文件的方法
1. 安裝 logrotate 工具
首先,確保系統(tǒng)上已經安裝了 logrotate。在大多數 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)建新的日志文件,并設置權限和所有者。sharedscripts:確保postrotate腳本只運行一次,而不是為每個被處理的日志文件運行一次。postrotate:在日志文件輪換后運行的腳本,kill -USR1命令通知 Nginx 重新打開日志文件。
markdown 復制代碼 # 定期刪除 OpenResty/Nginx 大日志文件的方法 如果你的日志文件是一個大的單一日志文件,而不是多個文件的形式,你可以使用 `logrotate` 工具來管理和定期刪除舊的日志內容。以下是詳細的步驟: ## 1. 安裝 logrotate 工具 首先,確保系統(tǒng)上已經安裝了 `logrotate`。在大多數 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)建新的日志文件,并設置權限和所有者。sharedscripts:確保postrotate腳本只運行一次,而不是為每個被處理的日志文件運行一次。postrotate:在日志文件輪換后運行的腳本,kill -USR1命令通知 Nginx 重新打開日志文件。
4. 測試 logrotate 配置
在應用配置之前,可以使用 logrotate 的 -d 參數來測試配置文件,而不實際執(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 也可以幫助你自動管理和定期刪除舊的日志內容,確保日志文件不會無限制地增長。
以上就是定期刪除OpenResty/Nginx大日志文件的方法的詳細內容,更多關于刪除OpenResty/Nginx日志文件的資料請關注腳本之家其它相關文章!
相關文章
使用AWS的ELB服務時為Nginx啟用代理協(xié)議的步驟講解
這篇文章主要介紹了使用AWS的ELB服務時為Nginx啟用代理協(xié)議的步驟講解,ELB服務是亞馬遜服務器提供的常用的負載均衡方案,需要的朋友可以參考下2015-12-12

