NGINX日志文件按日分割成单独文件的方法

NGINX日志文件按日分割成单独文件的方法

  • 原理
    Nginx日志并不能像apache一样可以按日生成,但是我们可以用脚本方法来实现
  • 创建分割脚本在每晚12点整执行
# 打开linux计划任务
crontab -e
# 输入以下代码
00 00 * * * /bin/bash /data/web/vhost/log/cutLog.sh
  • 创建cutLog.sh脚本文件
#!/bin/bash
#此脚本用于自动分割Nginx的日志,包括access.log和error.log
#每天00:00执行此脚本 将前一天的access.log重命名为access-xxxx-xx-xx.log格式,并重新打开日志文件
#Nginx日志文件所在目录

LOG_PATH=$(cd `dirname $0`; pwd)

#获取昨天的日期
YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)

#获取pid文件路径
PID=/usr/local/nginx/logs/nginx.pid

#分割日志
mv ${LOG_PATH}/access.log ${LOG_PATH}/access-${YESTERDAY}.log
mv ${LOG_PATH}/error.log ${LOG_PATH}/error-${YESTERDAY}.log

#向Nginx主进程发送USR1信号,重新打开日志文件
kill -USR1 `cat ${PID}`
  • 文件的执行权限
chmod -R 0777 cutLog.sh

注意修改上方脚本中的相关日志路径,以及nginx.pid路径

    原文作者:isyee
    原文地址: https://segmentfault.com/a/1190000011364515
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞