nginx日志分割实现


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


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


由于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)