未分类
统计某个时间段海外流量
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
#!/bin/bash source /etc/profile email() { /opt/shell/sendEmail -f xxx@xxx -t $USERS -s xxx.xxx.com -u $1 -m $2 -a /tmp/pptv_*.tar.gz -o tls=no -xu xxx@xxx.com -xp xxxxx(passwd) } USERS="xxx@xxx.com" beg_date=`date -d "$1" +%s` end_date=`date -d "$2" +%s` beg=`date -d @${beg_date} +%Y-%m-%d` end=`date -d @${end_date} +%Y-%m-%d` cd /tmp #for yy in {1..1} #do #FILETIME=`date -d "$yy day ago" +%F` #YEAR=`date -d "$yy day ago" +%Y` #MONTH=`date -d "$yy day ago" +%m` #DAY=`date -d "$yy day ago" +%d` if [[ -z $1 ]]||[[ -z $2 ]];then echo "Usage: $0 YYYYMMDD YYYYMMDD" exit 0; fi if [[ ${beg_date} > ${end_date} ]];then echo "The end_date < beg_date ;Please input the right date,example: $0 20140101 20140301" exit 0; fi for (( i=${beg_date};i<=${end_date};i=i+86400)) do T=`date -d @${i} +%Y-%m-%d` FILETIME="$T" YEAR=`echo $FILETIME | awk -F'-' '{print $1}'` MONTH=`echo $FILETIME | awk -F'-' '{print $2}'` DAY=`echo $FILETIME | awk -F'-' '{print $3}'` printf "Time" > pptv_$FILETIME.csv && printf " , " >> pptv_$FILETIME.csv && printf "id 55" >> pptv_$FILETIME.csv && printf " , " >> pptv_$FILETIME.csv && printf "id 26" >> pptv_$FILETIME.csv && echo " " >> pptv_$FILETIME.csv # #HOUR=`date -d "1 day ago" +%H` for x in {00..23} do TOTAL=`zcat /data/nfsd/x.x.x/x.x.x*/nginx_log/$YEAR/$MONTH/$DAY/project.access.log.$YEAR-$MONTH-$DAY-$x.gz | grep -w '/?property_id=55' | wc -l` TOTAL2=`zcat /data/nfsd/x.x.x/x.x.x*/nginx_log/$YEAR/$MONTH/$DAY/project.access.log.$YEAR-$MONTH-$DAY-$x.gz | grep -w '/?property_id=26' | wc -l` #CANADA=`zcat /data/nfsd/x.x.x/x.x.x*/nginx_log/$YEAR/$MONTH/$DAY/project.access.log.$YEAR-$MONTH-$DAY-$x.gz | grep '/?property_id=17' | awk -F'|' '{if ($8 == 767) print $1}' | wc -l` echo "$YEAR/$MONTH/$DAY/$x: , $TOTAL , $TOTAL2" >> pptv_$FILETIME.csv done TOTALAL=`grep -v 'Time' pptv_$FILETIME.csv | awk -F',' '{sum += $2} END {print sum}'` TOTALCA=`grep -v 'Time' pptv_$FILETIME.csv | awk -F',' '{sum += $3} END {print sum}'` echo "TOTAL: , $TOTALAL , $TOTALCA" >> pptv_$FILETIME.csv #set -x zcat /data/nfsd/x.x.x/x.x.x*/nginx_log/$YEAR/$MONTH/$DAY/project.access.log.$YEAR-$MONTH-$DAY-*.gz |grep '/?property_id=55' | awk -F'|' '{print $1}' | sort | uniq -c | sort -rn > pptv_15Sip.txt zcat /data/nfsd/x.x.x/x.x.x*/nginx_log/$YEAR/$MONTH/$DAY/project.access.log.$YEAR-$MONTH-$DAY-*.gz |grep '/?property_id=26' | awk -F'|' '{print $1}' | sort | uniq -c | sort -rn > pptv_30Sip.txt python /opt/shell/new_ppyip.py pptv_15S python /opt/shell/new_ppyip.py pptv_30S echo " " >> pptv_$FILETIME.csv echo "Country&Region , id 55 , id 26" >> pptv_$FILETIME.csv awk '{print $1,$3}' pptv_15Sipaddress.txt | sed -e "s#宁夏.*\|海南.*\|大连.*\|广东.*\|江苏.*\|山东.*\|河南.*\|四川.*\|山西.*\|江西.*\|湖南.*\|甘肃.*\|河北.*\|北京.*\|浙江.*\|上海.*\|辽宁.*\|内蒙.*\|贵州.*\|云南.*\|陕西.*\|湖北.*\|天津.*\|安徽.*\|新疆.*\|中国.*\|吉林.*\|广西.*\|福建.*\|黑龙江.*\|重庆.*#中国#g;s#台湾.*#台湾#g;s#AD\|BQ\|CW#未知#g" | awk '{a[$2]+=$1}END{for(i in a)print i" , "a[i]" , "}' | sort -k3 -rn >> pptv_$FILETIME.csv awk '{print $1,$3}' pptv_30Sipaddress.txt | sed -e "s#宁夏.*\|海南.*\|大连.*\|广东.*\|江苏.*\|山东.*\|河南.*\|四川.*\|山西.*\|江西.*\|湖南.*\|甘肃.*\|河北.*\|北京.*\|浙江.*\|上海.*\|辽宁.*\|内蒙.*\|贵州.*\|云南.*\|陕西.*\|湖北.*\|天津.*\|安徽.*\|新疆.*\|中国.*\|吉林.*\|广西.*\|福建.*\|黑龙江.*\|重庆.*#中国#g;s#台湾.*#台湾#g;s#AD\|BQ\|CW#未知#g" | awk '{a[$2]+=$1}END{for(i in a)print a[i],i}' | sort -rn > pptv_30Sdistribute.txt while read line do COUNTRY=`echo $line | awk '{print $2}'` NUM=`echo $line | awk '{print $1}'` sed -e 's/^'$COUNTRY' ,.*/& '$NUM'/' -i pptv_$FILETIME.csv done<pptv_30Sdistribute.txt iconv -f utf-8 -t gb18030 pptv_$FILETIME.csv -o pptv_$FILETIME.csv gzip pptv_$FILETIME.csv #email "Last 24 hours impression report for PPTV" "Last 24 hours impression report for PPTV. \n\n Please note this is an unattended mailbox. Replies to this mailbox are not monitored." rm -rf pptv_30Sdistribute.txt pptv_15Sipaddress.txt pptv_15Sip.txt pptv_30Sipaddress.txt pptv_30Sip.txt done files=''$beg'_to_'$end'' tar -czf pptv_$files.tar.gz pptv_*.gz email "Impression report for PPTV" "Impression reports for PPTV from '$beg' to '$end'. \n\n Please note this is an unattended mailbox. Replies to this mailbox are not monitored." |