天天看點

nginx定時任務完成日志切割

nginx允許針對不同的server做不同的log(有的web伺服器不支援),預設有個main格式的日志,如

server {
    listen       ; 
    server_name  a.com; //需更改 host
    location / { 
         root   a.com;  //根目錄定位
         index  index.html index.htm;
     }
     access_log  logs/a.com.access.log  main; //要把main格式的注釋去掉 
} 
           

1.date

date   #檢視時間
date -s '2013-09-21 19:00:38'  #修改時間
clock -w  #寫入cmos
date -d today +%Y%m%d #檢視今天的日期并格式化

           

2.shell腳本

mkdir /date  #建立date目錄
cd /date/
vim runlog.sh  

           

runlog.sh 内容:

#! /bin/bash
LOGPATH=/usr/local/nginx/logs/a.com.access.log #原始日志檔案
BASEPATH=/date/$(date -d today +%Y%m)  #新路徑

mkdir -p $BASEPATH     #以月為機關建立檔案夾

bak=$BASEPATH/$(date -d today +%Y%m%d%H%M).a.com.access.log   #新路徑及檔案名

mv $LOGPATH $bak  #移動
touch $LOGPATH  #新建立log檔案

kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`   # 重讀日志
           

儲存退出,然後

内容

*/1 * * * * sh /date/runlog.sh 
#分 時 日 月 周    我這裡為了看效果,每分鐘執行runlog.sh
           

儲存退出即可:

nginx定時任務完成日志切割

繼續閱讀