Nginx不支持像Apache 一样使用cronolog来轮转日志,但是可以采用以下方式来实现日志文件的切割:
mv /data1/logs/access.log /data1/logs/20111030.log
kill -USR1 Nginx主进程号
通过mv命令将日志文件重命名为/data1/logs/20111030.log,然后发送kill -USR1信号给Nginx的主进程号,让Nginx
重新生成一个新的日志文件/data1/logs/access.log。
如果想每天定时切割日志,还须要借助crontab。我们可以写一个按天切割的日志,按年、月
份目录存放日志的shell脚本:
代码如下 | 复制代码 |
#!/bin/bash # This script run at 04:00 # The Nginx logs path mkdir -p ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/ m")/access_$(date -d "yesterday" +"%Y%m%d").log |
赋予可执行权限:
执行命令crontab -e进入编辑状态
代码如下 | 复制代码 |
00 04 * * * /root/cut_logs.sh |
这样就每天凌晨4点你的系统就会自动切割nginx日志了哦。
如果你想更换其它时间的话我们可以修改00 04 * * * /root/cut_logs.sh 这一句,如改成每天的00:00切割nginx访
问日志
crontab -e
输入以下内容:
代码如下 | 复制代码 |
00 00 * * * /bin/bash /usr/local/nginx/sbin/cut_nginx_log.sh |
即可了,只要修改前面的数字就行了。