统计系统四----日志解析一

解析日志的shell文件(phase_log.sh)
. comm_function.sh

#工作目录
work_path=`getWorkPath`
work_log=$work_path"/log/work.log"
error_log=$work_path"/log/error.log"
phase_error_log=$work_path"/log/phase_error.log"
phase_success_log=$work_path"/log/phase_success.log"
awk_path=$work_path"/awk"

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

#参数的获取
#第一个参数为类型
#第二个参数为临时文件的名称
#第三个参数为下载解压缩的成功列表,手动执行重算的时候需要把文件名传进来即可,文件列表的日志文件必须已解压缩且存在
if [ $1 ]; then
    type=$1;
else
    logInfo "Phase_log.sh's first parameter is type that must be have" $error_log
    exit;
fi

#第二个获取临时文件生成的地址,包括文件名,不同的类型不同的临时文件
#temp=${work_path}"/temp/temp_"${type}
if [ $2 ];then
    temp=$2"_"${type}
else
    logInfo "phase_log.sh's second parameter is temp file that must be have" $error_log
    exit;
fi

#获取下载成功的某一类型的文件,里面存储的是各个成功解压缩之后的文件名
down_log_file=${work_path}"/log/down_success_${type}.log"

if [ $3 ]; then
    down_log_file=$3;
fi

#对下载成功的列表文件进行判断
if [ ! -e "${down_log_file}" ];then
    echo "there is no ${down_log_file}"
    logInfo "!!!there is no ${down_log_file}" $work_log
    exit;
fi

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

#获取mysql的语句
sql=`getConfigValue "sql" "$comm_config_file"`


#获取awk的文件名,与类型有关
awk_file=${awk_path}"/list_"${type}".awk"
#echo ${awk_file}

#加载后即刻保存为其它文件,这里只保存三个,为下次下载准备
log_names=`cat ${down_log_file}`
mv ${down_log_file} ${down_log_file}"_save1"
mv ${down_log_file}"_save1" ${down_log_file}"_save2"
mv ${down_log_file}"_save2" ${down_log_file}"_save3"

logInfo "*************************Begin Log Phase****************************" $work_log
for log in ${log_names};do
    awk -f ${awk_file} ${log}>>${temp}
    echo ${log}
    if [ -e "${temp}" ] && [ "`wc -l ${temp}`" != "0 ${temp}" ]; then
        #解析成功
        logInfo "----phase success---${log}" ${work_log}
        echo ${log}>>${phase_success_log}
    else
        #解析失败
        logInfo "!!!phase error.....${log}" ${work_log}
        echo ${log}>>${phase_error_log}
    fi
    #解析完毕就删除文件
    rm -rf ${log}
done
logInfo "*************************End Log Phase****************************"  $work_log

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