楠神简单说下操作步骤:
1)先去Nginx配置文件nginx.conf修改error_log、access_log
最好是像这样配置。
重启nginx是会报这样错误:
nginx: [emerg] unknown log format "main" in /usr/local/nginx/conf/nginx.conf
其原因很简单,是因为log_format没有开启的原因,在http{}中找到:
将每行前面的#去掉后在重启就可以了。
2)编写shell脚本文件
#!/bin/bash yesterdayDir=`date -d "yesterday" +"%Y%m"` yesterdayDirPath='/日志文件目录/www.phpnanshen.com/'${yesterdayDir}; logPath='/日志文件目录/www.phpnanshen.com/access.log'; if [ ! -d "$yesterdayDirPath" ]; then mkdir "$yesterdayDirPath" fi mv ${logPath} ${yesterdayDirPath}/$(date -d "yesterday" +%d).log; kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)
kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)
重载日志文件
脚本文件位置自定义,随便。
这个地方会出现的问题:
一定要在Nginx配置文件配置好pid位置
配置好pid,重启时可能会出现这样的错误:
nginx: [alert] kill(6418, 1) failed (3: No such process)
可以这样解决:
ps -aux | grep nginx
kill -9 nginx进程号
3)开启定时任务
在定时任务crontab中类似这样写
00 0 * * * /root/nginxAccessLog.sh > /dev/null 2>&1