nginx切割日志文件

不知道这么基础的功能, 为什么Nginx官方没有提供配置~

1
2
3
4
5
6
7
8
9
10
11
#!/bin/bash
#设置日志文件存放目录
logs_path="/data/logs/nginx/"
#设置pid文件
pid_path="/usr/local/openresty/nginx/logs/nginx.pid"

#重命名日志文件
mv ${logs_path}access.log ${logs_path}access_$(date -d "yesterday" +"%Y%m%d").log

#向nginx主进程发信号重新打开日志
kill -USR1 `cat ${pid_path}`

以上文件名为年月日形式, 写成脚本保存, 然后加入到计划任务里每天执行就可以了

1
2
> crontab -l
0 0 * * * /bin/bash /data/scripts/nginx_log_cut.sh >/dev/null 2>&1