nginx日志分割实现


nginx日志分割实现
 
摘要:nginx本身不支持日志分割,但是利用它的PID可以实现日志分割。
 
看了好几个网上的例子,写得不清不楚。于是决定自己写一个,说不定哪天忘记了可以再次打开学习学习。
 
但愿我写得比较清楚,下次看的时候或者别人看的时候不再费神。
 
由于nginx本身不支持日志分割,但是利用它的PID可以实现日志分割。 
 
1.编写日志分割程序nginx-log.sh 
#/bin/bash 
savepath_log='/logs/nginx/logs'#日志将要存放的路径 
nglogs='/usr/local/nginx/logs'#nginx的日志路径 
 
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'# 
 
#将这段脚本保存后加入到linux的crontab守护进程,让此脚本在每天凌晨0点执行,就可以实现日志的每天分割功能。 
 
2.修改文件权限,使其可以被执行。 
chmod 755 nginx-log.sh 
 
3.可以看一下有哪些计划任务 
crontal -l 
 
4.打开守护进程,进入编程模式 
crontal -e #如用vi按i键 
 
5.在守护进程中增加要执行的任务,通常日志在0点分割 
 0 0 * * * /logs/nginx/nginx-log.sh #执行文件存放路径 
 
好了,就等着明天到日志目录下去看看实现结果吧。。 

相关内容

    暂无相关文章