nginx日志按照天进行分割

来源:互联网 发布:人机界面数据记录 编辑:程序博客网 时间:2024/06/08 05:37

nginx日志按照天进行分割主你松轻管理nginx服务器。由于nginx的日志本身只是支持按照server_name或者大小进行划分,对于习惯了apache的按照一个网站每天一个日志的我来说是不可以接受的。怎么实现nginx日志拥有apache按天记录日志的功能。于是俊易数据技术人员在网上寻找相关资料,结果发现大部分都是相互转载。里面有一行代码是:kill -9 `cat nginx.pid`,需要杀掉nginx子进程,我觉得不靠谱。子进程杀掉之后相当于服务要断开一下。最终找到了一篇openstack技术关于日志的管理方法很不错。下面就和大家一起来分享


Shell代码:
#!/bin/bash
## 零点执行该脚本
## Nginx 日志文件所在的目录
LOGS_PATH=/usr/local/nginx/logs
## 获取昨天的 yyyy-MM-dd
YESTERDAY=$(date -d ”yesterday” +%Y-%m-%d)
## 移动文件
mv ${LOGS_PATH}/access.log ${LOGS_PATH}/access_${YESTERDAY}.log
## 向 Nginx 主进程发送 USR1 信号。USR1 信号是重新打开日志文件
kill -USR1 $(cat /usr/local/nginx/nginx.pid)


#!/bin/bash
## 零点执行该脚本
## Nginx 日志文件所在的目录
LOGS_PATH=/usr/local/nginx/logs
## 获取昨天的 yyyy-MM-dd
YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)
## 移动文件
mv ${LOGS_PATH}/access.log ${LOGS_PATH}/access_${YESTERDAY}.log
## 向 Nginx 主进程发送 USR1 信号。USR1 信号是重新打开日志文件
kill -USR1 $(cat /usr/local/nginx/nginx.pid)
上面这个脚本中的最后一行必须向 Nginx 的进程发送 USR1 信号以重新打开日志文件,如果不写的话,Nginx 会继续将日志信息写入 access_[yyyy-MM-dd].log 的那个文件中,这显然是不正确的。

来自:http://www.jydata.net/info80.html

0 0
原创粉丝点击