nginx定时任务分割日志

nginx安装在/usr/local文件夹下

1.在nginx根目录下创建一个文件data,保存脚本文件runlog.sh
mkdir /data
vim ./data/runlog.sh

2.在脚本文件runlog.sh文件里添加如下代码。
代码的含义是:在logs文件夹下,每天凌晨一点生成一个昨天的日志文件(命名方式:access_YYYY-MM-DD.log),并保存到对应年份的对应月份的文件夹中(以年份YYYY创建文件夹,再在YYYY里面按月份MM创建文件夹,然后将日志文件保存到MM中)
#!/bin/bash
log_base=/usr/local/nginx/logs
log_path=${log_base}/$(date -d yesterday +%Y)/$(date -d yesterday +%m)
mkdir -p $log_path
mv $log_base/access.log $log_path/access_$(date -d yesterday +%Y%m%d).log
touch $log_base/access.log
kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`
#echo $(date -d yesterday +%Y%m%d).log

3.运行、检查runlog.sh
将echo前面的#号去掉,保存退出runlog.sh脚本后,直接输入:
sh runlog.sh //执行脚本,检查是否有错误

4.定时执行runlog.sh
输入命令:
crontab -e

在打开的界面输入如下信息:
1 0 * * * sh /usr/local/nginx/data/runlog.sh //每天凌晨0点1分执行

注:yesterday 也可以用 today等,定时任务改一下执行时间即可

猜你喜欢

转载自zhengyong407.iteye.com/blog/2414712