根据nginx日志统计网站访问量

回复 收藏
我的应用比较特殊,在/home/logs/client/ 下有上百个日志。在/backup/client/userdirs/ 有上万个网站。
  1. #! /bin/bash
  2. cd /backup/client/userdirs/
  3. for f in `ls`; do
  4.     for f1 in `ls $f`; do
  5.         for f2 in  `ls $f/$f1`; do
  6.             echo $f/$f1/$f2 >>/tmp/forum.txt
  7.         done
  8.     done
  9. done
  10. function st(){
  11. for f in `cat /tmp/forum.txt`; do
  12.     d1=`echo $f |awk -F'/' '{print $3}'`
  13.     if grep -q $d1 /backup/client/caches/domains.php; then
  14.         d2=`grep $d1 /backup/client/caches/domains.php|awk '{print $1}'|awk -F"'" '{print $2}'`
  15.         sum=0
  16.             n=`grep -h "$d1.5d6d.com" $1|egrep -v 'Baiduspider|Googlebot'|wc -l`
  17.             n1=`grep -h "$d2" $1|egrep -v 'Baiduspider|Googlebot'|wc -l`
  18.             sum=$(($sum+$n+$n1))
  19.     else
  20.         sum=0
  21.             n=`grep -h "$d1.5d6d.com" $1|egrep -v 'Baiduspider|Googlebot'|wc -l`
  22.             sum=$(($sum+$n))
  23.     fi
  24.     echo $f  $sum
  25. done
  26. }
  27. cd /home/logs/client/
  28. mkdir -p /tmp/stbbs
  29. for f in `ls *log`; do
  30.     st $f >/tmp/stbbs/$f
  31. done
  32. cd /tmp/stbbs
  33. for i in `cat /tmp/forum.txt`; do
  34.     sum=0
  35.     for j in `ls`; do
  36.         n=`grep $i $j|awk '{print $2}'`
  37.         sum=$(($sum+$n))
  38.     done
  39.     echo $i $sum
  40. done
2012-03-01 16:58 举报
已邀请:

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: