zoukankan      html  css  js  c++  java
  • 中间件日志切割

    nginx日志切割

    nginx日志分割分为以下几步

    1、获取当前时间

    2、获取nginx日志存放位置

    3、判断nginx存放目录是否存在

    4、移动原nginx日志位置到保存的目录并显示保存的时间

    5、发送user1信号让master主进程生成新日志

    [root@web nginx]# vim nginx_log.sh


    #!/bin/bash
    #nginx_log.sh

    datetime=$(date -d "-1 day" "+%Y%m%d")                                 #时间,date -d "-1 day"代表日期减1
    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                 #如果$log_path/backup不是一个目录则创建$log_path/backup目录
    if [ -f $pid_path ]                                                                          #如果$pid_path是一个文件
    then
    mv $log_path/access.log $log_path/backup/access.log-$datetime          #那么移动旧日志的文件到新目录下以此来实现分割
    kill -USR1 $(cat $pid_path)                                      #USR1代表信号,他会给进程传一个信号让进程生成一个新的日志
    find $log_path/backup -mtime +30 | xargs rm -f                          #查找30天前的日志并删除
    else
    echo "Error,Nginx is not working!" | tee -a /var/log/messages #否则提示nginx is not working且追加到日志中
    fi

    给脚本添加权限。让脚本有权限执行

    [root@localhost nginx]# chmod +x nginx_log.sh

    定时备份

    [root@web nginx]# crontab -e

    */1   *    *    *    * bash /usr/local/nginx/nginx_log.sh        #每分钟都执行一次

    查看切割结果

    [root@web nginx]# cd logs/
    [root@web logs]# ls
    access.log backup error.log host.access.log nginx.pid
    [root@web logs]# cd backup/
    [root@web backup]# ls
    access.log-20200319

    --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

  • 相关阅读:
    创建Variant数组
    ASP与存储过程(Stored Procedures)
    FileSystemObject对象成员概要
    Kotlin 朱涛9 委托 代理 懒加载 Delegate
    Kotlin 朱涛 思维4 空安全思维 平台类型 非空断言
    Kotlin 朱涛7 高阶函数 函数类型 Lambda SAM
    Kotlin 朱涛16 协程 生命周期 Job 结构化并发
    Proxy 代理模式 动态代理 cglib MD
    RxJava 设计理念 观察者模式 Observable lambdas MD
    动态图片 Movie androidgifdrawable GifView
  • 原文地址:https://www.cnblogs.com/CMX_Shmily/p/12531086.html
Copyright © 2011-2022 走看看