nginx 日志按日切分

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   #每天2359分开始执行;
//标名这个脚本是使用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`

这样就可以了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值