#!/bin/sh
fun_parser_log()
{
# 日志存放路径,也可以设置为形参传入
log_path="/alidata1/guonan/jinerkan"
# 日志解析路径,也可以设置为形参传入
log_analysis_path="/home/guonan/analysis_log"
# 昨天时间 20151210
yesterday_time=$(date -d -1day +%Y%m%d)
# 昨天时间格式化 2015-12-10
yesterday_time_geshi=$(date -d -1day +%Y-%m-%d)
# apache生成的日志名称,要解析的,比如:tonight.m.jinerkan.com.log.
apache_log_prefix_name=$1
# apache生成的日志名称 + 昨天的时间戳, tonight.m.jinerkan.com.log.20150210
apeche_log_name=$apache_log_prefix_name$yesterday_time
# 最终要解析的日志前缀, top_search_tonight_2015-02-12.log 的前缀 top_search_tonight
fianl_log_prefix_name=$2"_"$yesterday_time_geshi
# 日志解析的类型, search, detail
log_type=$3
if [ -f $log_path"/"$apeche_log_name ]; then
if [ -f $log_analysis_path"/"$apeche_log_name ]; then
echo "log文件存在于 $log_analysis_path 之中, 无需拷贝 -------> "$yesterday_time_geshi >> $log_analysis_path"/"parser.log
else
# 将日志存放至单独的处理目录
$(cp $log_path"/"$apeche_log_name $log_analysis_path"/")
fi
else
echo "无法获得昨天的log文件 -------> "$yesterday_time_geshi >> $log_analysis_path"/"parser.log
fi
if [ "$log_type" == "search" ]; then
#如果拷贝成功,目录下存在日志文件
if [ -f $log_analysis_path"/"$apeche_log_name ]; then
$(cat $apeche_log_name | grep 'search' > $apeche_log_name".search.tmp")
$(cat $apeche_log_name".search.tmp" | grep -v 'typeahead' > $apeche_log_name".search.tmp.v.typeahead")
$(cat $apeche_log_name".search.tmp.v.typeahead" | awk -F '&' '{print $1}' | grep '?q=' | awk '{print $4,$7}' > $apeche_log_name".search")
#$(cat $apeche_log_name".search" | sort | uniq -c | sort -nr > $fianl_log_prefix_name".log")
else
echo "要解析的 $log_analysis_path"/"$apeche_log_name 文件存在于 $log_analysis_path 之中, 无需拷贝 -------> "$yesterday_time_geshi >> $log_analysis_path"/"parser.log
fi
elif [ "$log_type" == "detail" ]; then
#如果拷贝成功,目录下存在日志文件
if [ -f $log_analysis_path"/"$apeche_log_name ]; then
$(cat $apeche_log_name | grep -v 'static' > $apeche_log_name".v.static.tmp")
$(cat $apeche_log_name".v.static.tmp" | grep 'detail' > $apeche_log_name".detail.tmp")
$(cat $apeche_log_name".detail.tmp" | grep -v '124.205.178.126' > $apeche_log_name".v.ip.tmp")
$(cat $apeche_log_name".v.ip.tmp" | awk '{print $4,$7}' > $apeche_log_name".detail")
#$(cat $apeche_log_name".detail" | sort | uniq -c | sort -nr > $fianl_log_prefix_name".log")
else
echo "要处理的搜索日志文件不存在 -------> "$yesterday_time_geshi >> $log_analysis_path"/"parser.log
fi
else
echo "log_type 未指定 -------> "$yesterday_time_geshi >> $log_analysis_path"/"parser.log
fi
# 删除老的日志文件
if [ -f $fianl_log_prefix_name".log" ]; then
$(rm $apeche_log_name"."*)
#$(rm $apeche_log_name)
#$(scp -p $fianl_log_prefix_name".log" root@182.92.82.136:/opt/sun/spider/more_tv/java_db_save_analysis_log/conf/)
else
echo "日志文件未处理 -------> "$yesterday_time_geshi >> $log_analysis_path"/"parser.log
fi
}
apache_log_prefix_name="tonight.m.jinerkan.com.log."
final_search_log_prefix_name="top_search_tonight"
final_detail_prefix_name="top_detail_tonight"
search_type="search"
detail_type="detail"
fun_parser_log $apache_log_prefix_name $final_search_log_prefix_name $search_type
fun_parser_log $apache_log_prefix_name $final_detail_prefix_name $detail_type
echo " ----------- " >> "/home/guonan/analysis_log/parser.log"