socket服务器上的脚本

下面是编程之家 jb51.cc 通过网络收集整理的代码片段。

编程之家小编现在分享给大家,也给大家做个参考。

#!/bin/env bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
shopt -s extglob
clear;
socketpath="/path1 /path2 /path3"
log_cut() {
	for i in $(ls $1/LOG) ; do
		if [ $(date +"%Y%m%d") != $i] ; then
			wc -c -l $1/LOG/$i/* |awk '{printf "%s,%s,%s\n",$3,$1,$2}'|sort|sed '1 i\filename,rows,byte'|sed "1 i\\$1" >> /var/log/socketlog/report/report$i\.csv
			for j in $(ls $1/LOG/$i) ; do
				cd $1/LOG/$i
				case $j in
					@(getBlackList|Timetick|timetickEvent)\.txt)
						awk -F '\&|\=|-' '{++S[$2]} END {for(a in S) printf "%s,a,S[a]}' $j|sort |sed '1 i\Devid,Times' > $2/${j%%.*}$i\.csv ;;
					@(getTime|getTrackPriceWithID|blaNamLiReq)\.txt)
						awk -F '\=|-' '{++S[$2]} END {for(a in S) printf "%s,Times'> $2/${j%%.*}$i\.csv ;;
					"cardSectionPrice.do.txt")
						awk -F '\=|-|#' '/data/ {if(/html/){printf "%s,false\n",$2}else{printf "%s,\"%s\",succeed\n",$2,$4}}' $j|sed '1 i\Devid,Data,Stats'>$2/${j%%.*}$i\.csv ;;
					@(trans|InceptData)\.txt)
						awk -F '\&|\=|-' '{if(/T|true/){printf "%s,T\n",$4}else{printf "%s,F\n",$4}}' $j|sed '1 i\Data,Userid,Stats'> $2/${j%%.*}$i\.txt ;;
					"blaNamLisDown.txt")
						awk -F '\=|-' '/pid/ {++S[$2]} END {for(a in S) printf "%s,Times'> $2/${j%%.*}$i\.csv ;;
					"corpCostData.txt")
						awk '{printf "%s\n",$2}' $j |sed '1 i\Devid'> $2/${j%%.*}$i\.txt ;;
					*\.txt)
						cp $j $2/${j%%.*}\_$i\.txt ;;
					*\.hlog)
						echo $j is hlog ;;
					*)
						echo $j ;;
				esac
			done
			rm -R $1/LOG/$i
		fi
	done
}
mymail(){
	mailuser="[email protected]"
	day=$(date -d "yesterday" +"%Y%m%d")
	txt=$(cat /var/log/socketlog/report/report$day\.csv |awk -F "," '{if(/txt/){printf "%s,request %s times,%s byte<br> \n",$3}else if(!/hlog/){printf "<br>\n%s,%s<br>",$3}}'|sed 's/.txt//g')
	logfile="/var/log/socketlog/report/report$day.csv"
	echo $txt |mutt -s "About the state of the interface from $day " -e 'set content_type="text/html"' $mailuser -a $logfile
}

[ ! -d /var/log/socketlog ] && mkdir /var/log/socketlog
[ ! -d /var/log/socketlog/report ] && mkdir /var/log/socketlog/report
for k in ${socketpath[@]} ; do
	[ -f "$k/asmsocket" ] && sfile="asmsocket" || sfile="ddtsocket"
	sport=`grep "Port" $k/config.txt| awk -F "\=" '{print $2}'|sed 's/\r//'`
	[ ! -d /var/log/socketlog/$sport ] && mkdir /var/log/socketlog/$sport
	if [ `netstat -tnl |awk '{print $4}'|awk -F "\:" '{print $2}'|grep "$sport"` ] ; then
		echo "$k/$sfile is starting now"
	else
		$k/$sfile 2>/dev/null &
	fi
	log_cut $k /var/log/socketlog/$sport
done
[ "00" -le $(date +"%H") -a "01" -ge $(date +"%H") ] && mymail

以上是编程之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

相关文章

系ubuntu 下面打开终端输入:sudo apt-get install sendmail...
依家我有1个软件goagent目录(大家懂得) 放在/home/gateman/...
其实我想讲的是 cp -L关于-L参数的解释:-L, --dereferenc...
原地址:http://www.rjgc.net/control/content/content.php?...
chroot,即 change root directory (更改 root 目录)。在 li...
简单解析下, stdin就是标准输入, stdout就是标准。举个例子...