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 集合
    Python sorted()
    CodeForces 508C Anya and Ghosts
    CodeForces 496B Secret Combination
    CodeForces 483B Friends and Presents
    CodeForces 490C Hacking Cypher
    CodeForces 483C Diverse Permutation
    CodeForces 478C Table Decorations
    CodeForces 454C Little Pony and Expected Maximum
    CodeForces 313C Ilya and Matrix
  • 原文地址:https://www.cnblogs.com/tanxiaojuncom/p/11540982.html
Copyright © 2011-2022 走看看