SEHLL实现新浪日志同步系统

PV日志

       日志名称(按日生成)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

 

你可能感兴趣的:(sql,游戏,Date,user,null,Access)