nginx中使用shell指令碼每天定時切割日誌

來源:互聯網
上載者:User

Nginx不支援像Apache 一樣使用cronolog來輪轉日誌,但是可以採用以下方式來實現記錄檔的切割:
mv /data1/logs/access.log /data1/logs/20111030.log
kill -USR1 Nginx主進程號

通過mv命令將記錄檔重新命名為/data1/logs/20111030.log,然後發送kill -USR1訊號給Nginx的主進程號,讓Nginx

重建一個新的記錄檔/data1/logs/access.log。

如果想每天定時切割日誌,還須要藉助crontab。我們可以寫一個按天切割的日誌,按年、月
份目錄存放日誌的shell指令碼:

 

 代碼如下 複製代碼

#!/bin/bash
# This script run at 04:00

# The Nginx logs path
logs_path="/home/www/data/logs/"

mkdir -p ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/
mv ${logs_path}access.log ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%

m")/access_$(date -d "yesterday" +"%Y%m%d").log
kill -USR1 `cat /usr/local/servers/nginx/nginx.pid`

賦予可執行許可權:

執行命令crontab -e進入編輯狀態

 代碼如下 複製代碼

00 04 * * * /root/cut_logs.sh

這樣就每天淩晨4點你的系統就會自動切割nginx日誌了哦。

如果你想更換其它時間的話我們可以修改00 04 * * * /root/cut_logs.sh 這一句,如改成每天的00:00切割nginx訪

問日誌

crontab -e

輸入以下內容:

 代碼如下 複製代碼

00 00 * * * /bin/bash  /usr/local/nginx/sbin/cut_nginx_log.sh

即可了,只要修改前面的數字就行了。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.