shell+定時任務+nginx訊號管理實現日誌按日期切割儲存

來源:互聯網
上載者:User

我們每天淩晨00:00:01把昨天的日誌重新命名,放在特定的目錄下,再USR1資訊號控制nginx重建新的記錄檔

在目錄/usr/local/nginx/logs/下建立shell指令碼runlog.sh
註:以下代碼中的檔案位置均可自行更改

# 定義sh解譯器#!/bin/bush# 定義要分割的日誌的儲存位置LOGPATH=/usr/local/nginx/logs/access.log# 定義分割後的日誌的儲存位置,$(date -d yesterday +%Y%m):名為年份+月份的目錄BASEPATH=/usr/local/nginx/logs/$(date -d yesterday +%Y%m)# 遞迴建立以BASEPATH為名的目錄mkdir -p $BASHPATH# 將字串……賦值給bakbak=$BASEPATH/$(date -d yesterday +%d)_access_log# 將$LOGPATH更名為$bakmv $LOGPATH $bak# 建立$LOGPATH檔案touch $LOGPATH# 控制Nginx重建記錄檔kill -USR1 `/usr/local/nginx/logs/nginx.pid`

然後使用crontab命令編輯定時任務

crontab -e

在開啟的編輯視窗輸入

01 00 * * * sh /usr/local/nginx/logs/runlog.sh

crontab檔案的含義:

# 使用者所建立的crontab檔案中,每一行都代表一項任務,每行的每個欄位代表一項設定,它的格式共分為六個欄位,前五段是時間設定段,第六段是要執行的命令段,格式如下:# minute hour day month week command# 分 時 日 月 周 命令# 每項設定的解釋minute 表示分鐘,可以是從0到59之間的任何整數。hour 表示小時,可以是從0到23之間的任何整數。day 表示日期,可以是從1到31之間的任何整數。month 表示月份,可以是從1到12之間的任何整數。week 表示星期幾,可以是從0到7之間的任何整數,這裡的0或7代表星期日。command 要執行的命令,可以是系統命令,也可以是自己編寫的指令檔。

這時,即設定好了Nginx的定時日誌切割儲存,每天的淩晨00:00:01把昨天的日誌切割儲存起來。

相關文章

聯繫我們

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