• 中间件日志切割


    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

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

  • 相关阅读:
    学习ASP.NET Core(11)-解决跨域问题与程序部署
    学习ASP.NET Core(10)-全局日志与xUnit系统测试
    学习ASP.NET Core(09)-数据塑形与HATEOAS及内容协商
    学习ASP.NET Core(08)-过滤搜索与分页排序
    学习ASP.NET Core(07)-AOP动态代理与日志
    学习ASP.NET Core(06)-Restful与WebAPI
    学习ASP.NET Core(05)-使用Swagger与Jwt认证
    基于NACOS和JAVA反射机制动态更新JAVA静态常量非@Value注解
    DES 加密解密 文件工具类
    springboot-mybatis双数据源配置
  • 原文地址:https://www.cnblogs.com/CMX_Shmily/p/12531086.html
Copyright © 2020-2023  润新知