cdchenli 发表于 2015-11-19 14:40:26

关于使用keepalived后nginx日志中的健康日志清除方法


近期在ESX上部署了小站,使用lvs+keepalived负载均衡,发现nginx服务的日志里有大量的信息,看日志时很是痛苦,在nginx上想让方法不让它记录,结是我是没有找到。问了煮酒哥后,使用 sed来删除它,于是乎在日志切割的脚本中使用它。呵,sed不是很熟,各位熟sed的欢迎拍砖!  

# tail 20110827.access.log
10.1.1.20 - - "-" 400 0 "-" "-" -
10.1.1.10 - - "-" 400 0 "-" "-" -
10.1.1.20 - - "-" 400 0 "-" "-" -
10.1.1.10 - - "-" 400 0 "-" "-" -
10.1.1.20 - - "-" 400 0 "-" "-" -
10.1.1.10 - - "-" 400 0 "-" "-" -
10.1.1.20 - - "-" 400 0 "-" "-" -  


[*]#!/bin/bash
[*]#made by cheng
[*]#blog:myhat.blog.iyunv.com
[*]#last_time=2011/08/16
[*]
[*]#your logs store
[*]log_path=/data1/backup_log
[*]nginx_pid=/usr/local/webserver/nginx/nginx.pid
[*]nginx_log=/data1/logs
[*]yesterday=`date -d "yesterday" +%Y%m%d`
[*]host=`ls -l $nginx_log/*.access.log | awk -F " " '{print $9}' | awk -F ".access" '{print $1}' | awk -F "$nginx_log/" '{print $2}'`
[*]
[*]
[*]
[*]for i in $host
[*]do
[*]      if [ ! -d $log_path/$i/$yesterday ];then
[*]                mkdir -p $log_path/$i/$yesterday
[*]      fi
[*]      if [ ! -f$log_path/$i/$yesterday/$yesterday.access.log ];then
[*]               mv $nginx_log/$i.access.log$log_path/$i/$yesterday/$yesterday.access.log
[*]               kill -USR1 `cat $nginx_pid`
[*]      else
[*]               mv-bf$nginx_log/$i.access.log $log_path/$i/$yesterday/
[*]               sed -i '/^10.1.1/d' $log_path/$i/$yesterday/$i.access.log
[*]               sed -i '/^$/d' $log_path/$i/$yesterday/$i.access.log
[*]               kill -USR1 `cat $nginx_pid`
[*]      fi
[*]done

  
  本文出自 “潜入技术的海洋” 博客,请务必保留此出处http://myhat.blog.iyunv.com/391263/652734
页: [1]
查看完整版本: 关于使用keepalived后nginx日志中的健康日志清除方法