实现nginx日志分割

1、日志文件

[root@localhost ~]# ll /usr/local/nginx/logs/access.log 
-rw-r--r--. 1 root root 396 Aug 19 17:08 /usr/local/nginx/logs/access.log

2、查看日志

[root@localhost ~]# tail -f /usr/local/nginx/logs/access.log
192.168.200.11 - - [19/Aug/2019:17:06:58 -0400] "GET /index.jsp HTTP/1.1" 200 127 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.87 Safari/537.36"
192.168.200.11 - - [19/Aug/2019:17:08:32 -0400] "GET /index.jsp HTTP/1.1" 200 127 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.87 Safari/537.36"

 3、编写日志切割的脚本

[root@localhost ~]# vim /opt/fenge.sh
#! /bin/bash #fenge.sh datetime=$(date -d "-1 day" "+%Y%m%d") //设置时间变量以及变量值 ------------------------------------------------------------------------------- %Y%m%d 年月日 date -d "-1 day" "%Y%m%d" 昨天的时间 ------------------------------------------------------------------------------- log_path="/usr/local/nginx/logs" //变量设置日志存放位置 pid_path="/usr/local/nginx/logs/nginx.pid" //pid文件内保存PID号 [ -d $log_path/backup ] || mkdir -p $log_path/backup //查看/usr/local/nginx/logs下是否有backup文件,没有的话可以创建一下 if [ -f $pid_path ] //判断是否有这个变量,如果有,说明有进程,那么代表nginx服务活着呢 then mv $log_path/access.log $log_path/backup/access.log-$datetime //将日志文件移动到backup下,改名为access.log-时间戳 kill -USR1 $(cat $pid_path) //给进程传信号,生成一个新的日志 find $log_path/backup -mtime +30 | xargs rm -f //找出30天前改动过的文件,删掉,只保留近30天的日志文件 else echo "Error,Nginx is not working!" | tee -a /var/log/messages //如果nginx服务没有开启,将会显示Error,Nginx is not working!,在屏幕上输出的同时添加到日志文件 fi

4、给脚本加权限

[root@localhost ~]# chmod +x /opt/fenge.sh

5、执行,并查看切割的日志

[root@localhost ~]# /opt/fenge.sh     
[root@localhost ~]# ls /usr/local/nginx/logs/
access.log  backup  error.log  nginx.pid
[root@localhost ~]# ls /usr/local/nginx/logs/backup/
access.log-20190917

 6、打开网页进行测试

[root@localhost ~]# cat /usr/local/nginx/logs/access.log
[root@localhost ~]# tail -f /usr/local/nginx/logs/access.log   //监控新的日志文件,打开网页执行刷新,就可以监控到日志文件
192.168.200.11 - - [18/Sep/2019:19:46:55 +0800] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.87 Safari/537.36"
192.168.200.11 - - [18/Sep/2019:19:47:07 +0800] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.87 Safari/537.36"

7、关闭nginx进程,再执行一次脚本,如果在执行中出现错误,如下:

[root@localhost ~]# killall -9 nginx 
[root@localhost ~]# /opt/fenge.sh 
/opt/fenge.sh: 第 11 行:kill: (7216) - 没有那个进程

[root@localhost ~]# rm -rf /usr/local/nginx/logs/nginx.pid  //删除原始的nginx服务中的nginx.pid,再执行。

[root@localhost ~]# /opt/fenge.sh 
Error,Nginx is not working!

 

转载于:https://www.cnblogs.com/tanxiaojuncom/p/11540982.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值