nginx 自动化定时切割日志

NG在默认情况下,是始终输出到一个日志文件中,日志文件在nginx.conf中 : access_log  logs/www.access.log  main;  一个文件中不是很方便查找,分析数据,因此需要按现实运维需要定时的对此文件进行切割。

1、准备个切割日志文件的脚本  vi  cut_nginx_log.sh 按每日规格来切割。

mv /usr/local/nginx/logs/www.access.log /home/master/logs/nginx/access_$(date -d "yesterday" +"%Y%m%d").log
kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`

修改此文件为可执行类: chmod +x cut_nginx_log.sh

2、向系统添加定时器执行任务

vi /etc/crontab

0 0 * * * root /usr/local/nginx/logs/cut_nginx_log.sh

前面五个为定时规则

每五分钟执行  */5 * * * *
每小时执行     0 * * * *
每天执行       0 0 * * *
每周执行       0 0 * * 0
每月执行       0 0 1 * *
每年执行       0 0 1 1 *

3、crontab默认情况下是不执行开启功能的
修改rsyslog服务,将 /etc/rsyslog.d/50-default.conf  文件中的 #cron.* 前的 # 删掉;

命令重启rsyslog服务:  service rsyslog restart;

然后再重启crontab服务: service cron restart;

查看crontab的状态    service cron status;

原文地址:https://www.cnblogs.com/song27/p/8471258.html