cat >/etc/logrotate.d/nginx <<EOFnginx
/application/nginx/logs/access_bbs.log /application/nginx/logs/access_www.log { daily rotate 30 missingok dateext compress delaycompress notifempty sharedscripts postrotate if [ -f /application/nginx/logs/nginx.pid ]; then kill -USR1 `cat /application/nginx/logs/nginx.pid` fi endscript }
EOFbash
執行測試app
確保只剩下nginx本身的日誌 以避免影響結果ide
[root@moban ~]# ls /application/nginx/logs/ -lh total 784M -rw-r--r-- 1 www root 9.0M Sep 12 15:45 access_bbs.log #<--日誌文件不能爲空 不然不能切割 -rw-r--r-- 1 root root 25K Sep 8 15:30 access.log -rw-r--r-- 1 www root 9.0M Sep 12 15:44 access_www.log #<--日誌文件不能爲空 不然不能切割 -rw-r--r-- 1 www root 766M Sep 8 19:17 error.log -rw-r--r-- 1 root root 5 Sep 12 15:27 nginx.pid
執行一下命令測試post
logrotate -vf /etc/logrotate.d/nginx測試
檢查是否生成了日誌,檢查發現以日期形式生成了日誌,說明切割成功spa
[root@moban ~]# ls /application/nginx/logs/ -lh total 784M -rw-r--r-- 1 www root 0 Sep 12 15:46 access_bbs.log -rw-r--r-- 1 www root 9.0M Sep 12 15:45 access_bbs.log-20180912 #切割生成了新日誌 -rw-r--r-- 1 root root 25K Sep 8 15:30 access.log -rw-r--r-- 1 www root 0 Sep 12 15:46 access_www.log -rw-r--r-- 1 www root 9.0M Sep 12 15:44 access_www.log-20180912 #切割生成了新日誌 -rw-r--r-- 1 www root 766M Sep 8 19:17 error.log -rw-r--r-- 1 root root 5 Sep 12 15:27 nginx.pid
添加定時任務日誌
59 23 * * * /usr/sbin/logrotate -vf /etc/logrotate.d/nginxip
配置說明it
配置 |
說明 |
daily |
指定轉儲週期爲天天 |
weekly |
指定轉儲週期爲每週 |
monthly |
指定轉儲週期爲每個月 |
rotate |
轉儲次數,超過將會刪除最老的那一個 |
missingok |
忽略錯誤,如「日誌文件沒法找到」的錯誤提示 |
dateext |
切換後的日誌文件會附加上一個短橫線和YYYYMMDD格式的日期 |
compress |
經過gzip 壓縮轉儲舊的日誌 |
delaycompress |
當前轉儲的日誌文件到下一次轉儲時才壓縮 |
notifempty |
若是日誌文件爲空,不執行切割 |
sharedscripts |
只爲整個日誌組運行一次的腳本 |
prerotate/endscript |
在轉儲之前須要執行的命令能夠放入這個對,這兩個關鍵字必須單獨成行 |
postrotate/endscript |
在轉儲之後須要執行的命令能夠放入這個對,這兩個關鍵字必須單獨成行 |