为什么要进行Nginx日志切割:
Nginx不像Tomcat那样可以自定义日志的大小、时间等生成方式,所有的日志会默认追加到一个文件中,很难去定位到小时间范围的日志。
规划:
通过linux计划任务+日志切割脚本,实现按月生成文件夹,日志文件按天生成
脚本:
# cat /usr/local/nginx/splitlog.sh
# /bin/bash # 日志保存位置 base_path='/usr/local/nginx/logs' # 获取当前年信息和月信息 log_path=$(date -d yesterday +"%Y%m") # 获取昨天的日信息 day=$(date -d yesterday +"%d") # 按年月创建文件夹 mkdir -p $base_path/$log_path # 备份昨天的日志到当月的文件夹 mv $base_path/access.log $base_path/$log_path/access_$day.log # 输出备份日志文件名 # echo $base_path/$log_path/access_$day.log # 通过Nginx信号量控制重读日志 kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`
绑定计划任务
# crontab -l
01 00 * * * /usr/local/nginx/splitlog.sh #每天凌晨1分执行日志切割脚本
查看: