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 # 没有错误日志记录(没发生错误)
- 本文固定链接: https://www.gayj.cn/?p=124
- 转载请注明: https://www.gayj.cn/