统计系统五----日志解析二

解析日志的第二个shell文件(stat_hour.sh),主要是把下载,解析放到一起,然后执行存储过程

是按小时进行统计,若要按天进行统计,若还是小时的日志,则只需更改存储过程那个地方,让存储过程一天只执行一次;若日志是按天生成的,则把传进来的时间参数改为按天的就行。

不管哪一种都需要更改存储过程,需要把基础数据导入到正式数据的语句改成按天的。


. comm_function.sh

work_path=`getWorkPath`
#获取配置文件的路径
config_address=$work_path"/config";
comm_config_file=$config_address"/comm.config"

#x需要处理的类型,pv还是click,和配置文件中的相对应,和awk文件的某一部分名字相对应,和具体的sql语句有关
if test $1
then
type=$1
else
logInfo "main.sh is error,the first parameter is type that must have" $error_log
exit;
fi

#临时文件,必须填入绝对路径,否则会报错,不分类型,在下载日志的时候会
if test $2
then
temp_file=$2
else
logInfo "main.sh is error,the second parameter is temp_name that must have" $error_log
exit;
fi

lasthour=`date --date="1 hour ago" +%Y-%m-%d-%H`

#下载日志的时间,即需要下载解析哪一个时间的日志
if test $3
then
lasthour=$3;
fi

cd ${work_path}"/sh"

#获取配置文件中所配置的sql语句
table=`getConfigValue "sql_table_${type}" ${comm_config_file}`

#获取mysql的信息
mysql_head=`getConfigValue "mysql_head" ${comm_config_file}`

#获取执行住存储过程的名称
#procedure=`getConfigValue "sql_procedure_${type}" ${comm_config_file}`

#下载日志
./down_log.sh ${type} ${lasthour}


#解析日志
./phase_log.sh ${type} ${temp_file}


#临时文件入库
${mysql_head} "LOAD DATA LOCAL INFILE '${temp_file}"_"${type}' into table ${table} ";

#执行存储过程
#${mysql_head} -e "call ${procedure}('${lasthour}')"
#echo ${procedure}

#备份临时文件,只保存两个,并删除当前的临时文件
cp -f ${temp_file}"_"${type} ${temp_file}"_"${type}"_bak1"
cp -f ${temp_file}"_"${type}"_bak1" ${temp_file}"_"${type}"_bak2"
rm -rf ${temp_file}"_"${type}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值