加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

解析某个接口程序生成的日志

发布时间:2020-12-15 07:11:19 所属栏目:安全 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 #!/bin/bash########################################################################################### NOTE:# The test system is Ubuntu12.04

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

#!/bin/bash
##########################################################################################
# NOTE:
# The test system is Ubuntu12.04
# 
# This Scripts all rights reserved deserved by MickeyZZC
# Copyright ? 2013
#
##########################################################################################
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

clear;

function c_socket_log_cut()
{
	for i in $(cd $log_path ; echo * )
	do
		echo "processing folder $i,please wait a moment!"
		if test $(date +"%Y%m%d") != $i 
		then
			ls -lh $log_path/$i |awk '{print $NF,$5}' |sort > $file_path/$i.report1
			for j in $(cd $log_path/$i ; echo * )
			do
				echo "processing file $j,please wait a moment!"
				cd $log_path/$i
				wc -l $j|awk '{print $2,$1}' >>$file_path/$i.report2
				if [ "getBlackList.txt" = $j -o "Timetick.txt" = $j ] ; then
#					awk '/ask=0/ {split($2,S,"&");print S[1]}' $j |awk '{++S[$NF]} END {for(a in S) print a,S[a]}'
#					awk -F '&;|=' '/ask=0/ {++S[$2]} END {for(a in S) print a,S[a]}' $j
					awk -F '&;|=|-' '{++S[$2]} END {for(a in S) printf "%s,%sn",a,S[a]}' $j|sort |sed '1 iDevid,Times' > $file_path/${j%%.*}$i.csv
				elif [ "getTime.txt" = $j -o "getTrackPriceWithID.txt" = $j] ; then
					awk -F '=|-' '{++S[$2]} END {for(a in S) printf "%s,Times'> $file_path/${j%%.*}$i.csv
				elif [ "cardSectionPrice.do.txt" = $j ] ; then
					awk -F '=|-|#' '/data/ {if(/html/){printf "%s,falsen",$2}else{printf "%s,"%s",succeedn",$2,$4}}' $j|sed '1 iDevid,Data,Stats'>$file_path/${j%%.*}$i.csv
				elif [ "trans.txt" = $j -o "InceptData.txt" = $j ] ; then
					awk -F '&;|=|-' '{if(/T|true/){printf "%s,%s,Tn",$4}else{printf "%s,Fn",$4}}' $j|sed '1 iData,Userid,Stats'> $file_path/${j%%.*}$i.txt
				elif [ "txt" = "${j##*.}" ] ;then
					cp $j $file_path/${j%%.*}_$i.txt
				fi
			done
			sort $file_path/$i.report2 >$file_path/$i.report3
			join $file_path/$i.report1 $file_path/$i.report3 |sort |sed '1 ifuck' |sed "s/fuck/${sockets[$num]}/">>$home_path/socketlog/${logs[3]}/report$i.txt
			rm $file_path/$i.report1 $file_path/$i.report2 $file_path/$i.report3
			rm -R $log_path/$i
		fi
	done
}
function c2_socket_log_cut()
{
for i in $(cd $log_path ; echo * )
do
 echo "processing folder $i,please wait a moment!"
 if test $(date +"%Y%m%d") != $i
 then
 touch $file_path/$i.report
 ls -lh $log_path/$i |awk '{print $NF,$5}' |sort > $file_path/$i.report1
 for j in $(cd $log_path/$i ; echo * )
 do
	echo "processing file $j,please wait a moment!"
	cd $log_path/$i
	wc -l $j|awk '{print $2,$1}' >>$file_path/$i.report2
		if test "blaNamLiReq.txt" = $j -o "getTime.txt" = $j
		then
			awk -F '=|-' '{++S[$2]} END {for(a in S) printf "%s,Times' > $file_path/${j%%.*}$i.csv
		elif test "blaNamLisDown.txt" = $j
		then
			awk -F '=|-' '/pid/ {++S[$2]} END {for(a in S) printf "%s,Times'> $file_path/${j%%.*}$i.csv
		elif test "timetickEvent.txt" = $j
		then
			awk -F '&;|=|-' '{++S[$2]} END {for(a in S) printf "%s,Times'> $file_path/${j%%.*}$i.csv
		elif test "corpCostData.txt" = $j
		then
			awk '{printf "%sn",$2}' $j |sed '1 iDevid'> $file_path/${j%%.*}$i.txt
		elif test "txt" = "${j##*.}"
		then
			cp $j $file_path/${j%%.*}_$i.txt
		fi
 done
 sort $file_path/$i.report2 >$file_path/$i.report3
 join $file_path/$i.report1 $file_path/$i.report3 |sort |sed '1 ifuckk' |sed "s/fuckk/${sockets[$num]}/">>$home_path/socketlog/${logs[3]}/report$i.txt
 rm $file_path/$i.report1 $file_path/$i.report2 $file_path/$i.report3
 rm -R $log_path/$i
 fi
done
}

function mymail()
{
	mailuser="[email?protected]"
	day=$(date -d "yesterday" +"%Y%m%d")
	txt=$(cat $home_path/socketlog/report/report$day.txt |awk '{if(/txt/){printf "%s request %s times.<br> n",$1,$3}else if(!/hlog/){printf "<br>n%s<br>",$1}}'|sed 's/.txt//g')
	logfile="$home_path/socketlog/${logs[1]}/*$day.csv /home/ecadmin/mail/Readme.txt"
	echo $txt |mutt -s "About the state of the interface from $day " -e 'set content_type="text/html"' $mailuser -a $logfile
}

sockets=(c1_socket c2_socket)
logs=(l1 l2 l3 report)
home_path="/path"
for num in 0 1 2
do
	log_path="$home_path/${sockets[$num]}/LOG"
	file_path="$home_path/socketlog/${logs[$num]}"
	if test "c2_socket" != ${sockets[$num]}
	then
		c_socket_log_cut
	else
		c2_socket_log_cut
	fi
done
mymail

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读