手动切割日志

  1. 进入nginx的sbin目录下,创建cut_my_log.sh脚本

    1. vi cut_my_log.sh
  2. 脚本内容如下

    #!/bin/bash
    LOG_PATH="/var/log/nginx/"
    #按天来分割
    RECORD_TIME=$(date -d "yesterday" +%Y-%m-%d)
    RECORD_TIME=$(date -d "yesterday" +%Y-%m-%d+%H:%M)
    PID=/var/run/nginx/nginx.pid
    mv ${LOG_PATH}/access.log {RECORD_TIME}.log
    mv ${LOG_PATH}/error.log {RECORD_TIME}.log
    #向Nginx主进程发送信号,用于重新打开日志文件
    kill -USR1 cat $PID
    
  3. 为 cut_my_log.sh 添加可执行的权限

    chmod +x cut_my_log.sh
    
  4. 执行日志切割

    ./cut_my_log.sh
    

定时切割日志

  1. 安装定时任务

    yum install crontabs
    
  2. crontab -e 编辑并且添加一行新的任务

    */1 * * * * /usr/local/nginx/sbin/cut_my_log.sh
    
  3. 重启定时任务

    service crond restart
    
  4. 常用的定时任务命令

    service crond start //启动服务
    service crond stop //关闭服务
    service crond restart //重启服务
    service crond reload //重新载入配置
    crontab -e // 编辑任务
    crontab -l // 查看任务列表