Nginx自身是沒有按日期切割日誌的功能,能夠用shell腳本實現。新建一個cut_log.sh,nginx
#!/bin/sh # Program: # Auto cut nginx log script. # nginx日誌路徑 LOGS_PATH=/usr/local/nginx/logs TODAY=$(date -d 'today' +%Y-%m-%d) # 移動日誌並更名 mv ${LOGS_PATH}/error.log ${LOGS_PATH}/error_${TODAY}.log mv ${LOGS_PATH}/access.log ${LOGS_PATH}/access_${TODAY}.log # 向nginx主進程發送從新打開日誌文件的信號 kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)
而後給上面的腳本受權shell
chmod u+x cut_log.sh
而後是加到定時任務中bash
crontab -espa
0 0 * * * bash /usr/local/nginx/logs/cut_log.sh