zoukankan      html  css  js  c++  java
  • Nginx 切割日志

    Nginx 日志切割-手动

    现有的日志都会存在 access.log 文件中,但是随着时间的推移,这个文件的内容会越来越多,体积会越来越大,不便于运维人员查看,所以我们可以通过把这个大的日志文件切割为多份不同的小文件作为日志,切割规则可以以天为单位,如果每天有几百G或者几个T的日志的话,则可以按需以每半天或者每小时对日志切割一下。

    具体步骤如下:

    1. 创建一个shell可执行文件:cut_my_log.sh,内容为:
    #!/bin/bash
    LOG_PATH="/var/log/nginx/"
    RECORD_TIME=$(date -d "yesterday" +%Y-%m-%d+%H:%M)
    PID=/var/run/nginx/nginx.pid
    mv ${LOG_PATH}/access.log ${LOG_PATH}/access.${RECORD_TIME}.log
    mv ${LOG_PATH}/error.log ${LOG_PATH}/error.${RECORD_TIME}.log
    1. #向Nginx主进程发送信号,用于重新打开日志文件

    kill -USR1 `cat $PID`
    1. 为cut_my_log.sh添加可执行的权限:
    chmod +x cut_my_log.sh

    测试日志切割后的结果:

    ./cut_my_log.sh

    Nginx 日志切割-定时

    使用定时任务

    1. 安装定时任务:
    yum install crontabs
    1. crontab -e 编辑并且添加一行新的任务:
    */1 * * * * /usr/local/nginx/sbin/cut_my_log.sh

    重启定时任务:

    service crond restart 

    或者

    systemctl restart crond.service
    • 附:常用定时任务命令:
    • 启动服务
    service crond start 

    或者 

    systemctl start crond.service 

    关闭服务

    service crond stop 

    或者 

    systemctl stop crond.service 

     重启服务

    service crond restart 

    或者 

    systemctl restart crond.service 

    重新载入配置

    service crond reload 

    或者 

    systemctl reload crond.service 

     编辑任务

    crontab -e 

    查看任务列表

    crontab -l 

    定时任务表达式:

    Cron表达式是,分为5或6个域,每个域代表一个含义,如下所示:

     

    星期几

    年(可选)

    取值范围

    0-59

    0-23

    1-31

    1-12

    1-7

    2019/2020/2021/…

    常用表达式:

    • 每分钟执行:

    */1 * * * *

    • 每日凌晨(每天晚上23:59)执行:

    59 23 * * *

    • 每日凌晨1点执行:

    0 1 * * *

  • 相关阅读:
    frida多版本安装 ubuntu同时安装多个版本的frida
    python爬虫备忘录
    解决linux不能启动google问题
    Centos7 自定义守护进程
    (CentOS 7.0和7.5实验过) 更改网卡名称
    centos 配置网络连接(本机是基于无线网,虚拟机上)
    linux 仿QQ 2.0版本
    linux 实现仿QQ应用程序
    linux 终端、伪终端、虚拟终端的理解
    linux中的make命令
  • 原文地址:https://www.cnblogs.com/blogspring/p/14191758.html
Copyright © 2011-2022 走看看