設置完 Nginx 的 access log 後,
接著使用 logrotate 設置 log 的壓縮
在 vim /etc/logrotate.d/nginx
/data/logs/*log {
daily
rotate 10
missingok
notifempty
compress
sharedscripts
postrotate
/bin/kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid 2>/dev/null) 2>/dev/null || :
endscript
}
daily 表示每天做 logrotate
rotate 10 只保留 rotate 10 份
missingok 當 log file 不存在時,還是繼續執行。
notifempty 當 log 為空時,不 rotate
compress 壓縮 使用gzip
sharedscripts 表示當所有log都rotate 完,以後再執行這個 script。
compress 壓縮 使用gzip
sharedscripts 表示當所有log都rotate 完,以後再執行這個 script。
postrotate 中 kill -USR1 的目的是使重新 reopen nginx log file 。
The master process can handle the following signals:
TERM, INT | Quick shutdown |
QUIT | Graceful shutdown |
KILL | Halts a stubborn process |
HUP |
Configuration reload
Start the new worker processes with a new configuration
Gracefully shutdown the old worker processes
|
USR1 | Reopen the log files |
USR2 | Upgrade Executable on the fly |
WINCH | Gracefully shutdown the worker processes |
CommandLine | NGINX https://www.nginx.com/resources/wiki/start/topics/tutorials/commandline/
kill -USR1 参数详解 - 阅心笔记 https://www.52os.net/articles/kill-USR1-meanning.html
如果,想要馬上執行看看呢
logrotate -f /etc/logrotate.d/ngnix
然後就可以
cat cat /var/lib/logrotate.status | grep "/data/logs/" 看看有沒有執行的紀錄。
沒有留言:
張貼留言