1. 編輯腳本
說明:date -d "-1 day" 表示昨天; %F表示年月日以Y%-m%-d形式;[-d ]表示判斷是否有這個目錄,如果沒有就或關系,建立該目錄;将每日的access.log檔案挪到建立的目錄/tmp/nginx_log/中,并命名為d變量的格式;reload用于重新生成acces.log,并重定向清空;考慮到切割的日志比較大,gzip -f判斷日志是否存在,如果存在,則進行強制壓縮(如果一天執行多次,該檔案已經存在并壓縮過,則會同名,-f覆寫不提示)
vim /usr/local/sbin/nginx_logrotate.sh
<code>#! /bin/bash</code>
<code># author by huangzhenping</code>
<code>d=`</code><code>date</code> <code>-d </code><code>"-1 day"</code> <code>+%F`</code>
<code>[ -d </code><code>/tmp/nginx_log</code> <code>] || </code><code>mkdir</code> <code>/tmp/nginx_log</code>
<code>mv</code> <code>/tmp/access</code><code>.log </code><code>/tmp/nginx_log/</code><code>$d.log</code>
<code>/etc/init</code><code>.d</code><code>/nginx</code> <code>reload > </code><code>/dev/null</code>
<code>cd</code> <code>/tmp/nginx_log/</code>
<code>gzip</code> <code>-f $d.log</code>
2. 日志切割腳本加入crond任務計劃清單
<code>0 0 * * * </code><code>/bin/bash</code> <code>/usr/local/sbin/nginx_logrotate</code><code>.sh</code>
3. 定期删除日志,crond計劃清單
<code>0 0 * * * </code><code>find</code> <code>/tmp/nginx_log/</code> <code>-</code><code>type</code> <code>f -mtime +10 |</code><code>xargs</code> <code>rm</code>
本文轉自 huangzp168 51CTO部落格,原文連結:http://blog.51cto.com/huangzp/1900638,如需轉載請自行聯系原作者