nginx日志切割脚本
线上环境NGINX日志,一直是叠加方式增长,每天日志量大概是50G。因为文件太大,不便于运维过滤error log,所以针对NGINX,结合每小时的日志量,写了如下切割脚本
1 # /bin/bash 2 3 #time@2019年3月14日 4 #name@刘启明 5 #function@NGINX日志切割 6 7 8 #NGINX日志路径 9 base_path='/sdb1/nginx/logs' 10 11 12 #创建目录时间 当天时间 例如:2019-03-14 13 #log_path=$(date -d yesterday +"%Y%m%d") #该参数是创建前一天数据,如需要当天备份,可使用 14 log_path=$(date +"%Y%m%d") 15 16 17 #日志创建时间 18 #date=$(date -d yesterday +"%Y-%m-%d-%H")#该参数是创建前一天数据,如需要当天备份,可使用 19 date=$(date +"%Y-%m-%d-%H") 20 21 22 #在NGINX日志路径下创建以当天时间命名的目录 23 mkdir -p $base_path/$log_path 24 25 26 #将备份日志 27 mv $base_path/access.log $base_path/$log_path/access_$date.log 28 29 30 #NGINX日志重读 31 kill -USR1 `cat /sdb1/nginx/logs/nginx.pid`
通过计划任务执行该脚本,计划任务格式自行百度
0 */1 * * * /usr/local/script/nginx_cutting.sh