您的位置:首页 > 运维架构 > Nginx

nginx日志分割实现

2013-07-09 00:00 441 查看
摘要: nginx本身不支持日志分割,但是利用它的PID可以实现日志分割。

看了好几个网上的例子,写得不清不楚。于是决定自己写一个,说不定哪天忘记了可以再次打开学习学习。

但愿我写得比较清楚,下次看的时候或者别人看的时候不再费神。

由于nginx本身不支持日志分割,但是利用它的PID可以实现日志分割。

1.编写日志分割程序nginx-log.sh

#/bin/bash

#日志将要存放的路径

savepath_log='/logs/nginx/logs'

#nginx的日志路径
nglogs='/usr/local/nginx/logs'

mkdir -p $savepath_log/$(date +%Y)/$(date +%m)

mv $nglogs/access.log %savepath_log/$(date +%Y)/$(date +%m)/access.$(data +%Y%m%d).log

mv $nglogs/error.log %savepath_log/$(date +%Y)/$(date +%m)/error.$(data +%Y%m%d).log

kill -USR1 'cat /usr/local/nginx/logs/nginx.pid'

#
kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)

#将这段脚本保存后加入到linux的crontab守护进程,让此脚本在每天凌晨0点执行,就可以实现日志的每天分割功能。

2.修改文件权限,使其可以被执行。

chmod 755 nginx-log.sh

3.可以看一下有哪些计划任务

crontab -l

4.打开守护进程,进入编程模式

crontab -e #如用vi按i键

5.在守护进程中增加要执行的任务,通常日志在0点分割

0 0 * * * /logs/nginx/nginx-log.sh #执行文件存放路径

好了,就等着明天到日志目录下去看看实现结果吧。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  nginx log crontal