1 在nginx.conf文件中,http标签中增加以下内容,用于规范日志格式
log_format main '$remote_addr -$remote_user [$time_local] "request"'
'$status $body_bytes_sent "$http_referer"'
'"$http_user_agent" "$http_x_forwarded_for"'
'"$gzip_ratio" $request_time $request_length' ;
2 创建shell脚本,/usr/local/nginx-kycdc/shell/cut_ngnix_log.sh,内容如下:
#!/bin/bash
year=`date +%Y`
month=`date +%m`
day=`date +%d`
logs_backup_path="/usr/local/nginx-kycdc/logs_backup/$year"
logs_path="/usr/local/nginx-kycdc/logs/"
logs_access="access"
logs_error="error"
pid_path="/usr/local/nginx-kycdc/logs/nginx.pid"
mkdir -p $logs_backup_path
rq=`date +%Y%m%d`
#mv ${logs_path}${logs_access}.log ${logs_backup_path}/${logs_access}_${rq}.log
mv ${logs_path}${logs_error}.log ${logs_backup_path}/${logs_error}_${rq}.log
kill -USR1 $(cat /usr/local/nginx-kycdc/logs/nginx.pid)
3以linux定时任务方式,分割日志文件
crontab –e
59 23 * * * bash /usr/local/nginx-kycdc/shell/cut_nginx_log.sh #每天23:59分开始执行;
//标名这个脚本是使用bin目录下bash去执行
#!/bin/bash
//安装目录下日志文件
base_path='/usr/local/nginx/logs/access.log'
//需要保存的目录位置
log_path='/root/nginx/logs'
//获取月份
log_month=$(date -d yesterday +"%Y%m")
//获取当天日期
log_day=$(date -d yesterday +"%d")
//在指定位置创建文件夹
mkdir -p $log_path/$log_month
//将安装目录下的日志文件,移动到指定存储位置
mv $base_path $log_path/$log_month/accuess_$log_day.log
//再使用信号控制切割日志
kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`
这样就可以了