因为nginx自身不带日志分割的功能 所以我们用shell脚本来完成这一任务
1.首先我来说明下nginx的主进程号:
如果nginx.conf 配置文件中使用了"pid /usr/local/nginx/nginx.pid;"指定了pid文件的存放路径,我们可以通过more这个pid文件来获得nginx的主进程号,或者使用
ps -ef | grep nginx 查看
![](https://i-blog.csdnimg.cn/blog_migrate/d0edbec9fe32cba757da9b2c08d38b68.jpeg)
2.如果想每天定时切割日志,还需配置crontab.
3.创建一个shell脚本
![](https://i-blog.csdnimg.cn/blog_migrate/f32010bb2682a4a7f7d7411fb70a859f.jpeg)
4.配置crontab每天凌晨00:00 定时执行这个脚本
#crontab -e
![](https://i-blog.csdnimg.cn/blog_migrate/873cb069babba33d2d389285e8500bbb.jpeg)
5.讲解下这个脚本的意思
![](https://i-blog.csdnimg.cn/blog_migrate/725cf61148613f80bbcc4e060591306d.jpeg)
这个shell脚本和crontab配置主要实现的功能为:假设今天的日期为2010年4月11日,nginx当前的日志文件为/home/logs/a.log,2010年4月12日00:00 会执行fenge.sh脚本,
脚本首先创建一个目录/home/logs/2010/04/,让后将/home/logs/a.log 文件移动并重命名为/home/logs/2010/04/access_20100411.log,在发送kill -USR1 '主进程号' 信号给nginx重新生成一个/home/logs/a.log文件,2010年4月12日的日志记录在这个新生成的日志文件中.而home/logs/2010/04/access_20100411.log文件,就是2010年4月11日的日志文件.
转载于:https://blog.51cto.com/mcshell/294208