原文链接: 本文只节选部分内容
Nginx自己没有日志分割的功能,一旦时间过长,日志文件就会变得很大,在进行日志分析的时候就会变得很困难,因此分割日志很有必要。
本次讲解的是使用shell脚本来实现按天分割日志
1 #!/bin/bash 2 3 4 # Nginx 日志文件所在的目录 5 LOGS_PATH=/usr/local/nginx/logs 6 7 # 获取昨天的 yyyy-MM-dd 8 YESTERDAY=$(date -d "yesterday" +%Y-%m-%d) 9 10 # 移动文件11 mv ${LOGS_PATH}/access.log ${LOGS_PATH}/access_${YESTERDAY}.log12 13 # 向 Nginx 主进程发送 USR1 信号。USR1 信号是重新打开日志文件14 kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)
使用定时任务定时执行脚本,即可实现按天切割日志。
本例使用的是CentOS系统:
格式:
从左向右(以空格分隔):分--时--日--月--星期-要执行的命令
0 0 * * * /usr/local/nginx/logs/cutlog.sh #每天0点执行一次cutlog.sh脚本