zoukankan      html  css  js  c++  java
  • 实现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!
  • 相关阅读:
    我的第一篇博客
    吴裕雄--天生自然python学习笔记:Python3 标准库概览
    吴裕雄--天生自然python学习笔记:Python3 命名空间和作用域
    吴裕雄--天生自然python学习笔记:Python3 面向对象
    吴裕雄--天生自然python学习笔记:Python3 错误和异常
    吴裕雄--天生自然python学习笔记:Python3 OS 文件/目录方法
    吴裕雄--天生自然python学习笔记:Python3 File(文件) 方法
    吴裕雄--天生自然python学习笔记:Python3 输入和输出
    吴裕雄--天生自然python学习笔记:Python3 模块
    吴裕雄--天生自然python学习笔记:Python3 数据结构
  • 原文地址:https://www.cnblogs.com/tanxiaojuncom/p/11540982.html
Copyright © 2011-2022 走看看