zoukankan      html  css  js  c++  java
  • CentOS8平台nginx日志的定时切分

    一,编写bash脚本:

    [root@yjweb crontab]# vi split_nginx_logs.sh

    代码:

    #!/bin/bash
    
    # 备份nginx的日志
    
    # 昨天的日期
    file_date=$(date -d"1 day ago" +"%Y%m%d")
    echo ${file_date}
    
    # nginx log的路径
    log_path_nginx=/data/logs/nginxlogs
    
    # ===================backup dir name========================
    
    back_base=/data/logs/nginxlogsbackup
    date_year=$(date -d"1 day ago" +"%Y")
    date_month=$(date -d"1 day ago" +"%m")
    date_day=$(date -d"1 day ago" +"%d")
    back_path=${back_base}/${date_year}/${date_month}/${date_day}
    echo ${back_path}
    
    # ===================mkdir back_path========================
    
    if [ -d ${back_path} ];then
            echo 目录已经存在,不能重复创建
    else
            mkdir -p ${back_path}
    fi
    
    # =================== 备份nginx log ========================
    
    cd ${log_path_nginx}
    
    for file in $(ls *log);
    do
    
        mv ${file} ${back_path}/${file_date}_${file}
    
    done
    
    # =================== 向nginx主进程发送USR1信号,重新打开日志文件 ========================
    # =================== 避免继续向原文件中写入日志 ========================
    kill -USR1 `ps axu | grep "nginx: master process" | grep -v grep | awk '{print $2}'`

    说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest

             对应的源码可以访问这里获取: https://github.com/liuhongdi/

     说明:作者:刘宏缔 邮箱: 371125307@qq.com

    二,创建保存备份日志的目录

    [root@yjweb logs]# mkdir /data/logs/nginxlogsbackup
    [root@yjweb logs]# chmod 777 /data/logs/nginxlogsbackup

    三,保存到定时任务:

    [root@yjweb crontab]# chmod +x split_nginx_logs.sh
    [root@yjweb crontab]# crontab -e

    内容:

    [root@yjweb crontab]# crontab -l
    0 0 * * * sh /data/web/crontab/split_nginx_logs.sh >> /data/logs/cronlogs/splitnginxlogs.log 2>&1

    四,查看日志切分的效果:

    [root@yjweb crontab]# ll /data/logs/nginxlogsbackup/2020/03/05/
    total 92
    -rw-r--r-- 1 root root  7601 Mar  6 13:33 20200305_error.log
    -rw-r--r-- 1 root root  6843 Mar  6 11:32 20200305_www.access_log
    -rw-r--r-- 1 root root  2490 Mar  6 11:32 20200305_www.error_log

    五,查看本地centos的版本

    [webop@yjweb ~]$ cat /etc/redhat-release
    CentOS Linux release 8.0.1905 (Core) 
  • 相关阅读:
    整合springmvc+spring+mybatis
    springmvc 登录拦截器
    Python3.6.5 Win10安装numpy,scipy,scikit-learn,matplotlib
    windows+mysql+python+navicat入坑指南
    TP5 paginate()分页后给结果集追加字段和数据
    cropper+php+ajax 上传头像
    PHP base64转换成图片
    Echarts通过Ajax实现动态数据加载
    用php获取当天年份、月份、日及天数
    jquery对json 键值对或数组的增加、删除、遍历操作
  • 原文地址:https://www.cnblogs.com/architectforest/p/12435441.html
Copyright © 2011-2022 走看看