logrotate切割nginx日誌

logrotate切割nginx日誌實踐

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

在轉儲之後須要執行的命令能夠放入這個對,這兩個關鍵字必須單獨成行

相關文章
相關標籤/搜索