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

解析日志的第二个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}

你可能感兴趣的:(sql,mysql,python,F#)