首页 > Script > Nginx的日志分割脚本
2016
03-09

Nginx的日志分割脚本

Nginx没有类似Apache的日志分割处理的功能,但是,可以通过nginx的信号控制功能的脚本来实现日志的自动切割,下面是Nginx对日志进行处理的一个脚本 。

#!/bin/bash

savepath_log=’/home/nginx/logs’          # 分割后的日志存放路径(确认目录存在)

nglogs=’/var/log/nginx’                         # 当前nginx默认的日志文件目录

 

mkdir -p $savepath_log/$(date +%Y)/$(date +%m)                     # 根据变量创建分天分时日志目录

mv $nglogs/access.log $savepath_log/$(date +%Y)/$(date +%m)/access.$(date +%Y%m%d).log   # 将nginx当前访问日志按日期时间等方式分割存储到分割目录中

mv $nglogs/error.log $savepath_log/$(date +%Y)/$(date +%m)/error.$(date +%Y%m%d).log        # 将nginx当前错误日志按日期时间等方式分割存储到分割目录中

kill -USR1 `cat /var/run/nginx.pid`                                                                                           # 通过nginx的信号 “USR1”实现日志的自动切换功能

 

为了测试手动执行一下sh -x nginx.sh(可用Crontab添加任务每天0点自动执行)

查看结果如下:

[root@www ~]# tree /home/nginx/

/home/nginx/

└── logs

└── 2016

└── 03

├── access.20160309.log

└── error.20160309.log

 

[root@www ~]# cat /home/nginx/logs/2016/03/access.Y0309.log

172.16.38.1 – – [09/Mar/2016:11:51:54 +0800] “GET /index.html HTTP/1.1” 304 0 “-” “Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0” “-”

172.16.38.1 – – [09/Mar/2016:11:52:19 +0800] “GET /upload/forum.php HTTP/1.1” 200 4902 “http://www.test.com/upload/forum.php?mod=viewthread&tid=1&extra=page%3D1” “Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0” “-”

172.16.38.1 – – [09/Mar/2016:11:52:19 +0800] “GET /upload/static/image/common/collapsed_yes.gif HTTP/1.1” 200 275 “http://www.test.com/upload/forum.php” “Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0” “-”

 

[root@www ~]# cat /home/nginx/logs/2016/03/error.2016m09.log                               # 没有错误日志记录(没发生错误)

最后编辑:
作者:李国庆
这个作者貌似有点懒,什么都没有留下。
捐 赠如果您觉得这篇文章有用处,请支持作者!鼓励作者写出更好更多的文章!

留下一个回复

你的email不会被公开。