日志名称(按日生成):YYYYMMDDisdn.log,例:20091022isdn.log
日志格式:
名称 |
格式 |
说明 |
示例 |
日期 |
YYYY-MM-DD |
统计日期 |
2009-10-23 |
渠道编号 |
wm |
网盟编号 |
5020_0010 |
预估用户 |
数字 |
通过apach日志中的来源IP计算出的用户总数 |
1863 |
pv |
数字 |
该渠道下所有页面访问量 |
39872 |
pv2 |
数字 |
该渠道下注册及试玩链接点击量 |
1763 |
loginpv |
数字 |
用户登录次数 |
1500 |
每行一条记录,各字段间以’|’分隔,例:
2009-10-23|5020_0010|1863|39872|1763|1500
2009-10-23|5020_0011|3762|98763|2736|2198
2009-10-23|5000_0010|8823|398723|7362|6838
#!/bin/bash # crontab -e 3 0 * * * /home/nemo/crontab/isdn.sh >> `date +%Y%m%d`isdn.txt # crontab -e 10 0 * * * sed -i 's///n//g' `date +%Y%m%d`isdn.log 过滤sql查询的 "/n" # crontab -e 10 0 * * * tr -s '/r/n ' ', ' <`date +%Y%m%d`isdn.txt >`date +%Y%m%d`isdn.log 过滤换行符 # 缩减为: # crontab -e 10 0 * * * /home/nemo/crontab/isdn.sh >> `date +%Y%m%d`isdn.txt ; tr -s '/r/n ' ', ' <`date +%Y%m%d`isdn.txt >`date +%Y%m%d`isdn.log ; rm -rf *.txt DB_USER="${hibernate.connection.username}" DB_PASS="${hibernate.connection.password}" DB_HOST="${hibernate.connection.host}" DB_PORT="${hibernate.connection.port}" # Others vars BIN_DIR="${LINUX.MYSQL.BIN_DIR}" #名称 格式 说明 示例 #日期 YYYY-MM-DD 统计日期 2009-10-23 #渠道编号 wm 网盟编号 5020_0010 #预估用户 数字 通过apach日志中的来源IP计算出的用户总数 1863 #pv 数字 该渠道下所有页面访问量 39872 #pv2 数字 该渠道下注册及试玩链接点击量 1763 #loginpv数字 用户登录次数 1500 NOW=`date +%Y-%m-%d` # 获得渠道的名称 VMS=`$BIN_DIR/mysql -u$DB_USER -p$DB_PASS -h$DB_HOST -P$DB_PORT << EOF use ${hibernate.connection.db}; select vm from UserLogin group by vm; EOF` for vm in $VMS ; do if [ "$vm" != "vm" ] && [ "$vm" != "NULL" ]; then # pv 该渠道下所有页面访问量(通过去读tomcat日志文件获得该数据) GUESTCOUNT=`cat ${LOGPATH}localhost_access_log.$NOW.txt | grep vm=$vm | wc -l` #DATAS[0] 预估用户 #DATAS[1] pv2 该渠道下注册及试玩链接点击量 #DATAS[2] 用户登陆次数 DATAS=`$BIN_DIR/mysql -u$DB_USER -p$DB_PASS -h$DB_HOST -P$DB_PORT << EOF use ${hibernate.connection.db}; select count(*) as '' from UserLogin where to_days(loginTime) = to_days(now()); select '$GUESTCOUNT' as '|'; select count(*) as '|' from User where uzoneToken = '$vm' and to_days(ctime) = to_days(now()); select count(*) as '|' from UserLogin where vm = '$vm' and to_days(loginTime) = to_days(now()); EOF` echo "$NOW|$vm|$DATAS" fi done
日志名称(按日生成):YYYYMMDDuser.log,例:20091022user.log
日志格式:
名称 |
格式 |
说明 |
示例 |
时间 |
YYYY-MM-DD hh:mm:ss |
统计时间 |
2009-10-23 00:01:35 |
用户编号 |
userid |
用户的sina id(新浪通行证ID) |
2137291577 |
用户等级 |
数字 |
用户在游戏内的等级,多角色游戏取最高等级 用户等级小于2的请不要出现在此日志里。 |
2 |
渠道编号 |
wm |
网盟编号 |
5020_0010 |
每行一条记录,各字段间以’|’分隔,例:
2009-10-22 00:00:04|2137291577|3|5007_0025
2009-10-22 00:00:10|2137291578|3|5019_0000
2009-10-22 00:01:35|2137291579|2|5019_0010
2009-10-22 00:02:06|2137291477|3|5020_0003
注意:本日志中的记录只是当天新增注册用户的信息,对于老用户不出现在本日志中。
#!/bin/bash # crontab -e 3 0 * * * /home/nemo/crontab/user.sh >> `date +%Y%m%d`user.log DB_USER="${hibernate.connection.username}" DB_PASS="${hibernate.connection.password}" DB_HOST="${hibernate.connection.host}" DB_PORT="${hibernate.connection.port}" # Others vars BIN_DIR="${LINUX.MYSQL.BIN_DIR}" #时间 YYYY-MM-DD hh:mm:ss 统计时间 2009-10-23 00:01:35 #用户编号 userid 用户的sina id(新浪通行证ID) 2137291577 #用户等级 数字 用户在游戏内的等级,多角色游戏取最高等级 #用户等级小于2的请不要出现在此日志里。 2 #渠道编号 wm 网盟编号 5020_0010 NOW=`date +%Y-%m-%d/ %H:%M:%S` $BIN_DIR/mysql -u$DB_USER -p$DB_PASS -h$DB_HOST -P$DB_PORT << EOF use ${hibernate.connection.db}; select '$NOW' as '','|' as '' ,username as '','|' as '',civili as '','|' as '',uzoneToken as '' from User,Player where to_days(ctime) = to_days(now()) and player_id = Player.id; EOF
日志名称(按日生成):YYYYMMDDconsume.log,例:20091022consume.log
名称 |
格式 |
说明 |
示例 |
时间 |
YYYY-MM-DD hh:mm:ss |
统计时间 |
2009-10-23 00:01:35 |
用户编号 |
userid |
用户的sina id(新浪通行证ID) |
2137291577 |
用户名称 |
username |
用户在游戏中的角色名称 |
笑看天下 |
渠道编号 |
wm |
网盟编号 |
5020_0010 |
道具编号 |
itemid |
用户消费的道具编号 |
14030001 |
道具名称 |
Itemname |
用户消费的道具名称 |
10格包包 |
道具金额 |
itemprice |
用户消费的道具总金额(单价:元) |
4[x1] |
每行一条记录,各字段间以’|’分隔,例:
2009-10-22 00:00:15|2137291577|笑看天下|5000_0010|140300010044|10格包包|2
2009-10-22 00:04:07|2137291578|笑看天下|5000_0010|140300010078|回复药|2
2009-10-22 00:12:37|2137291579|凌云|5020_0002|140300010041|回魂丹|10
2009-10-22 00:22:01|2137291477|纳兰|5004_0009|140300010065|回气散|2
注意:消费日志为全用户的消费记录,包括新/老用户。 [x1]该处金额为购买一个订单消费的总金额
#!/bin/bash # crontab -e 3 0 * * * /home/nemo/crontab/consume.sh >> `date +%Y%m%d`consume.log # crontab -e 10 0 * * * sed -i 's/NULL/1/g' `date +%Y%m%d`consume.log 过滤sql查询的NULL为1 # 缩减为: # crontab -e 10 0 * * * /home/nemo/crontab/consume.sh >> `date +%Y%m%d`consume.log ; sed -i 's/NULL/1/g' `date +%Y%m%d`consume.log DB_USER="${hibernate.connection.username}" DB_PASS="${hibernate.connection.password}" DB_HOST="${hibernate.connection.host}" DB_PORT="${hibernate.connection.port}" # Others vars BIN_DIR="${LINUX.MYSQL.BIN_DIR}" #时间 YYYY-MM-DD hh:mm:ss 统计时间 2009-10-23 00:01:35 #用户编号 userid 用户的sina id(新浪通行证ID) 2137291577 #用户名称 username 用户在游戏中的角色名称 笑看天下 #渠道编号 wm 网盟编号 5020_0010 #道具编号 itemid 用户消费的道具编号 14030001 #道具名称 Itemname 用户消费的道具名称 10格包包 #道具金额 itemprice 用户消费的道具总金额(单价:元) 4 NOW=`date +%Y-%m-%d/ %H:%M:%S` $BIN_DIR/mysql -u$DB_USER -p$DB_PASS -h$DB_HOST -P$DB_PORT << EOF use ${hibernate.connection.db}; select '$NOW' as '','|' as '',username as '','|' as '',playerName as '','|' as '',uzoneToken as '','|' as '',vipType as '','道具',vipType as '','|' as '',spend as '' from User,Player,VipNotes where to_days(VipNotes.ctime) = to_days(now()) and playerID = player_id and playerID = Player.id; EOF