利用系統內建的logrotate切割nginx日誌

來源:互聯網
上載者:User

利用系統內建的logrotate切割nginx日誌 摘要: 這個東東可以切割任何日誌,不僅僅是NGINX的log,很好用哦。 logrotate簡介      logrotate 程式是一個記錄檔管理工具。用來把舊的記錄檔刪除,並建立新的記錄檔,我們把它叫做“轉儲”。我們可以根據記錄檔的大小,也可以根據其天數來轉 儲,這個過 程一般通過 cron 程式來執行。logrotate 程式還可以用於壓縮記錄檔,以及發送日誌到指定的E-mail 。系統內建的日誌切割的設定檔在/etc/logrotate.conf 和 /etc/logrotate.d/syslog 裡面,觀察一下。  作用: 如果記錄檔比較大,MV是需要時間的,這段時間內的日誌有可能丟失。logrotate可以在切割日誌的同時,不遺失資料。  vi /etc/logrotate.d/nginx  /usr/local/nginx/logs/*.log { daily rotate 7  missingok notifempty dateext sharedscripts postrotate     if [ -f /usr/local/nginx/logs/nginx.pid ]; then         kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`     fi endscript } 指令碼解釋: /usr/local/nginx/logs/*.log {    nginx的日誌路徑 /usr/local/nginx/logs/www.qq.com.log error.log {   可以指定日誌,用空格分開 daily  每天輪詢 rotate 7  保留7天 missingok  如果日誌丟失,不報錯繼續滾動下一個日誌 notifempty  當日誌為空白時不進行滾動 dateext   在檔案末尾添加當前日期 sharedscripts   運行postrotate指令碼 postrotate    指令碼內容,給NGINX發訊號要求重建日誌,如果nginx沒開起來就不操作     if [ -f /usr/local/nginx/logs/nginx.pid ]; then            kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`     fi endscript } 測試,有產生就代表配置成功 /usr/sbin/logrotate -f /etc/logrotate.d/nginx 配置crontab 00 00 * * *  /usr/sbin/logrotate -f /etc/logrotate.d/nginx 也可以放入/etc/cron.daily/  一定要注意:1、在測試切割是否成功,一定要先備份一下!如果想保留全部日誌,設定一個很大的值比如3650,如果你                            注釋rotate或者不加,那麼不會切割成功。                    2、crond運行 附  logrotate 的設定檔是 /etc/logrotate.conf。主要參數如下表: compress       通過gzip 壓縮轉儲以後的日誌 nocompress  不需要壓縮時,用這個參數 copytruncate 用於還在開啟中的記錄檔,把當前記錄備份並截斷 nocopytruncate 備份記錄檔但是不截斷 create mode owner group 轉儲檔案,使用指定的檔案模式建立新的記錄檔 nocreate 不建立新的記錄檔 delaycompress 和 compress 一起使用時,轉儲的記錄檔到下一次轉儲時才壓縮 nodelaycompress 覆蓋 delaycompress 選項,轉儲同時壓縮。 errors address 專儲時的錯誤資訊發送到指定的Email 地址 ifempty 即使是空檔案也轉儲,這個是 logrotate 的預設選項。 notifempty 如果是空檔案的話,不轉儲 mail address 把轉儲的記錄檔發送到指定的E-mail 地址 nomail 轉儲時不發送記錄檔 olddir directory 轉儲後的記錄檔放入指定的目錄,必須和當前記錄檔在同一個檔案系統 noolddir 轉儲後的記錄檔和當前記錄檔放在同一個目錄下 prerotate/endscript 在轉儲以前需要執行的命令可以放入這個對,這兩個關鍵字必須單獨成行 postrotate/endscript 在轉儲以後需要執行的命令可以放入這個對,這兩個關鍵字必須單獨成行 daily 指定轉儲周期為每天 weekly 指定轉儲周期為每周 monthly 指定轉儲周期為每月 rotate count 指定記錄檔刪除之前轉儲的次數,0 指沒有備份,5 指保留5 個備份 tabootext [+] list 讓logrotate 不轉儲指定副檔名的檔案,預設的副檔名是:.rpm-orig, .rpmsave, v, 和 ~ size size 當記錄檔到達指定的大小時才轉儲,Size 可以指定 bytes (預設)以及KB (sizek)或者MB (sizem). 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.