现在的位置: 首页 > 综合 > 正文

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

2013年09月06日 ⁄ 综合 ⁄ 共 1603字 ⁄ 字号 评论关闭

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

 

[root@svr1 20110827]# tail 20110827.access.log 
10.1.1.20 - - [27/Aug/2011:23:59:32 +0800] "-" 400 0 "-" "-" -
10.1.1.10 - - [27/Aug/2011:23:59:33 +0800] "-" 400 0 "-" "-" -
10.1.1.20 - - [27/Aug/2011:23:59:38 +0800] "-" 400 0 "-" "-" -
10.1.1.10 - - [27/Aug/2011:23:59:39 +0800] "-" 400 0 "-" "-" -
10.1.1.20 - - [27/Aug/2011:23:59:44 +0800] "-" 400 0 "-" "-" -
10.1.1.10 - - [27/Aug/2011:23:59:45 +0800] "-" 400 0 "-" "-" -
10.1.1.20 - - [27/Aug/2011:23:59:50 +0800] "-" 400 0 "-" "-" -

 

  1. #!/bin/bash 
  2. #made by cheng 
  3. #blog:myhat.blog.51cto.com 
  4. #last_time=2011/08/16 
  5.  
  6. #your logs store 
  7. log_path=/data1/backup_log 
  8. nginx_pid=/usr/local/webserver/nginx/nginx.pid 
  9. nginx_log=/data1/logs 
  10. yesterday=`date -d "yesterday" +%Y%m%d` 
  11. host=`ls -l $nginx_log/*.access.log | awk -F " " '{print $9}' | awk -F ".access" '{print $1}' | awk -F "$nginx_log/" '{print $2}'` 
  12.  
  13.  
  14.  
  15. for i in $host 
  16. do 
  17.         if [ ! -d $log_path/$i/$yesterday ];then 
  18.                 mkdir -p $log_path/$i/$yesterday 
  19.         fi 
  20.         if [ ! -f  $log_path/$i/$yesterday/$yesterday.access.log ];then 
  21.                mv $nginx_log/$i.access.log  $log_path/$i/$yesterday/$yesterday.access.log 
  22.                kill -USR1 `cat $nginx_pid` 
  23.         else 
  24.                mv  -bf  $nginx_log/$i.access.log $log_path/$i/$yesterday/ 
  25.                sed -i '/^10.1.1/d' $log_path/$i/$yesterday/$i.access.log  
  26.                sed -i '/^$/d' $log_path/$i/$yesterday/$i.access.log 
  27.                kill -USR1 `cat $nginx_pid` 
  28.         fi 
  29. done 

 

本文出自 “潜入技术的海洋” 博客,请务必保留此出处http://myhat.blog.51cto.com/391263/652734

抱歉!评论已关闭.