1.需求

  • nginx的日志文件路径
  • 每天0点对nginx日志进行切割
  • 以前一天的日期为命名

2.脚本

  • date命令:date -d 'yesterday' +%Y-%m-%d
    1. #!/bin/bash
    2. #Auto cut nginx log script.
    3. #create by 小C
    4. #create date:2019-08-21
    5. #nginx日志路径
    6. logs_path=/usr/local/nginx/logs
    7. YesterDay=$(date -d 'yesterday' +%Y-%m-%d)
    8. #移动日志并以日期改名
    9. mv ${logs_path}/access.log ${logs_path}/access_${YesterDay}.log
    10. mv ${logs_path}/error.log ${logs_path}/error_${YesterDay}.log
    11. #向nginx主进程发送信号,重新生成日志文件
    12. kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)

3.定时任务

  1. crontab -e
  2. 0 0 * * * sh /root/nginx_cut.sh
  3. crontab -l