#!/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."