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