`
javaPrimary
  • 浏览: 59377 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Shell脚本,包含了[分支 循环 数组 搜索 运算等基本功能]

阅读更多
脚本内容
#!/bin/sh

currDate=(2016-02-08 2016-02-09 2016-02-10 2016-02-11 2016-02-12 2016-02-13 2016-02-14)
#currDate=(2016-02-08)
#currHour=(00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23)
currHour=(11 12 13 14 15)
currMin=(0 1 2 3 4 5)
currDir=/home/cec/tmp
logDir=/home/cec/ngc/tomcat/logs
machineID=250


port50=5020
port63=3060

sumTmp=0
# copy 需要处理的文件
for var in ${currDate[@]}
do
    echo $var
	if [ ! -f "${currDir}/catalina.out.${var}" ]; then
	    echo ${currDir}/catalina.out.${var}
		#cp ${logDir}/catalina.out.${var}.gz ${currDir}
		#gunzip ${currDir}/catalina.out.${var}.gz
	fi
	
	rm -rf /home/cec/tmp/${var}_ng_version_${port50}.log
	rm -rf /home/cec/tmp/${var}_ng_version_${port63}.log
	#rm -rf /home/cec/tmp/${var}_ng_version2.log
	
	# 在多个文件中查找关键字
	files=$(ls /home/cec/.ngc/logs/ngc.ticket.${var}.*)
	for fileName in ${files[@]}
	do
		echo ${fileName}
		
		#grep -A1 -B2 "ID_DLockSeat\"" ${fileName} >> /home/cec/tmp/${var}_ng_version2.log
		
		grep -A1 -B2 "ID_DLockSeat\"" ${fileName} | grep -A2 -B1 ":${port50}/scts.service" >> /home/cec/tmp/${var}_ng_version_${port50}.log
		grep -A1 -B2 "ID_DLockSeat\"" ${fileName} | grep -A2 -B1 ":${port63}/scts.client" >> /home/cec/tmp/${var}_ng_version_${port63}.log
				
		#tmpNum=`grep "2016-02-08 11:1.*http-bio.*调用" ${fileName} | wc -l`
		#if [ $tmpNum -gt 0 ]; then
		#    echo ${fileName}$tmpNum
		#fi

		#sumTmp=`expr $sumTmp + $tmpNum`
	done
	#echo $sumTmp
	#ls /home/cec/.ngc/logs/ngc.ticket.${var}.* | xargx grep --color -A2 -B1 ":${port50}/scts.service" > /home/cec/tmp/${var}_${port50}.log
	#ls /home/cec/.ngc/logs/ngc.ticket.${var}.* | xargx grep --color -A2 -B1 ":${port63}/scts.service" > /home/cec/tmp/${var}_${port63}.log
done

#提取关于锁座的请求和错误日志
for var in ${currDate[@]}
do
    echo $var
	if [ -f "${currDir}/catalina.out.${var}" ]; then
	    #grep --color -B3 "NgTicketService.lockSeat(" ${currDir}/catalina.out.${var} > ${var}_lockSeat.log
		#grep -A2 "lockSeats\." ${currDir}/catalina.out.${var} > ${var}_all_lockSeats.log
		echo ${currDir}/catalina.out.${var}
	fi
done

lock_file_name=${currDir}/${machineID}_lock_result`date +"%F_%H:%M:%S"`.log
ng_file_name=${currDir}/${machineID}_ng_result`date +"%F_%H:%M:%S"`.log


# 锁座日志查询分析
for var in ${currDate[@]}
do
	for varHour in ${currHour[@]}
    do
		for varMin in ${currMin[@]}
		do
		    echo "$var\ $varHour:${varMin}"
			tmpTime="$var $varHour:${varMin}"
			#tmpErrNum=`grep "$var\ $varHour:${varMin}" ${currDir}/${var}_lockSeat.log | wc -l`
			
			#tmpAllNum=`grep "$var\ $varHour:${varMin}" ${currDir}/${var}_all_lockSeats.log | wc -l`
			#tmp001Num=`grep -A2 "$var\ $varHour:${varMin}" ${currDir}/${var}_all_lockSeats.log | grep "\"001\"" | wc -l`
			#tmp240Num=`grep -A2 "$var\ $varHour:${varMin}" ${currDir}/${var}_all_lockSeats.log | grep "\"240\"" | wc -l`
			
			#tmpAllMYNum=`grep "$var\ $varHour:${varMin}.*00002" ${currDir}/${var}_all_lockSeats.log | wc -l`
			#tmp001MYNum=`grep -A2 "$var\ $varHour:${varMin}.*00002" ${currDir}/${var}_all_lockSeats.log | grep "\"001\"" | wc -l`
			#tmp240MYNum=`grep -A2 "$var\ $varHour:${varMin}.*00002" ${currDir}/${var}_all_lockSeats.log | grep "\"240\"" | wc -l`
			
			tmpAll50=`grep -B2 "ID_DLockSeat\"" ${var}_ng_version_${port50}.log |grep -A3 "$var $varHour:${varMin}.*调用" | grep ":${port50}/scts.service" | wc -l`
			tmpfail50=`grep -B2 "ID_DLockSeat\"" ${var}_ng_version_${port50}.log |grep -A3 "$var $varHour:${varMin}.*调用失败" | grep ":${port50}/scts.service" | wc -l`
tmpSucc50=`grep -B2 -A1 "ID_DLockSeat\"" ${var}_ng_version_${port50}.log|grep -A3 "$var $varHour:${varMin}.*调用成功"|grep -B3 "Status=\"Success\""|grep ":${port50}/scts.service"|wc -l`
			
			tmpAll63=`grep -B2 "ID_DLockSeat\"" ${var}_ng_version_${port63}.log |grep -A3 "$var $varHour:${varMin}.*调用" | grep ":${port63}/scts.client" | wc -l`
			tmpfail63=`grep -B2 "ID_DLockSeat\"" ${var}_ng_version_${port63}.log |grep -A3 "$var $varHour:${varMin}.*调用失败" | grep ":${port63}/scts.client" | wc -l`
tmpSucc63=`grep -B2 -A1 "ID_DLockSeat\"" ${var}_ng_version_${port63}.log |grep -A3 "$var $varHour:${varMin}.*调用成功"|grep -B3 "Status=\"Success\""|grep ":${port63}/scts.client"|wc -l`

			#         grep -B2 -A1 "ID_DLockSeat\"" 2016-02-08_ng_version2.log | grep -A3 "2016-02-08 11:0.*调用成功"| grep -B3 "Status=\"Success\""| grep ":9080/scts.service"  | wc -l
			
			#echo "${tmpTime}  ${tmpErrNum}  ${tmpAllNum}  ${tmp001Num}  ${tmp240Num}  ${tmpAllMYNum}  ${tmp001MYNum}  ${tmp240MYNum}" >> $lock_file_name
			echo "${tmpTime}  ${tmpAll50}  ${tmpfail50}  ${tmpSucc50}  ${tmpAll63}  ${tmpfail63}  ${tmpSucc63}" >> $ng_file_name
		done
	done
done

0
1
分享到:
评论

相关推荐

    Linux shell数组循环的实例详解

    shell数组循环 测试shell数组,循环的例子: arr=(a b c) echo 所有的内容如下:${arr[@]} echo 数组的长度:${#arr[*]} for var in ${arr[@]} do echo 打印的内容:$var done 输出的内容如下: 以上...

    linux shell 中数组的定义和for循环遍历的方法

    平时写shell脚本也经常遍历数组,但是一下没答上来,被鄙视了。 所以平时学习还是好好总结吧,不能每次都问度娘谷爷。IT 知识体系较为庞大,细节的东西也太多,平时遇到问题应该的多总结记笔记。 linux 中定义一个...

    LinuxShell脚本学习基础视频

    【】11a00d99b60c4e2eba3440b8aa3a6bdd【】linux_shell脚本编程_01认识shell,如何编写shell脚本和执行【】linux_shell脚本编程_02vivim简单的常用操作【】linux_shell脚本编程_03变量和数值运算,父shell和子shell的...

    shell脚本字符串和数组的使用操作方法

    主要介绍了shell脚本字符串和数组的使用操作方法,在文中给大家提到shell将字符串分隔成数组的方法,需要的朋友可以参考下

    shell脚本循环调度程序

    shell脚本循环调度程序,样例代码,直接就可以使用。

    Shell脚本—判断循环

    shell 基础简单的循环判断语句, 闲的时候写的。

    shell脚本中的几种循环操作(附脚本)

    在写Shell脚本时,对于循环的几种写法,我想大家并不陌生。但若不是经常写,也会遗忘一些循环语法,或者只能够想起某一两种语法编写脚本。本脚本中总结了Shell中经常使用的几种循环操作。

    Shell脚本中获取进程ID的方法

    我该如何在shell脚本中得到PID。 当我在执行shell脚本时,它会启动一个叫子shell的进程。作为主shell的子进程,子shell将shell脚本中的命令作为批处理运行(因此称为“批处理进程”)。 在某些情况下,你也许想要...

    250个shell脚本

    Shell脚本,就是利用Shell的命令解释的功能,对一个纯文本的文件进行解析,然后执行这些功能,也可以说Shell脚本就是一系列命令的集合。 Shell可以直接使用在win/Unix/Linux上面,并且可以调用大量系统内部的功能来...

    shell 脚本shell 脚本shell 脚本

    shell 脚本shell 脚本shell 脚本shell 脚本shell 脚本shell 脚本shell 脚本shell 脚本shell 脚本shell 脚本shell 脚本

    Linux在shell中自动生成1到100的数组方法(两种方法)

    之前自己在写shell脚本的时候,需要自动创建1-100的文本确不知道该如何去创建。百度一翻终于知道了创建的方法。 在shell脚本中创建1-100的方法很多,那我在这里主要就说两种容易理解且方便的方法:  第一种方法: ...

    Shell脚本专家指南

    Shell脚本专家指南》旨在为Linux、Unix以及OSx系统管理员提供短小精悍且功能强大的shell实现解决方案,教会读者如何使用现有调试器调试shell脚本。全书分为3个部分:脚本技术基础、系统交互和高级技术、有用的脚本...

    Shell脚本之无限循环的两种方法

    主要介绍了Shell脚本之无限循环的两种方法,本文直接给出代码实例,需要的朋友可以参考下

    Linux系统自动不停重启并计数的shell脚本

    Linux系统自动不停重启并计数的shell脚本

    shell脚本写的加密脚本

    学习shell脚本,了解linux知识。

    SHELL脚本练习 写一个脚本,利用循环计算10的阶乘

    SHELL脚本练习 写一个脚本,利用循环计算10的阶乘

    shell 基本计算、逻辑运算、位运算详解

    以下面的格式提供运算表达式:$(( expression )) $ echo $((5*(3+3))) 30 $ result = $(($myvar-10)) shell提供方便的数之间的进制转换: $ echo $((013))#八进制 $ echo $((0xA4))#十六进制 还可以使用以下格式指定...

    Linux_shell脚本全面学习

    Linux_shell脚本全面学习 Linux_shell脚本全面学习

    Shell脚本编程100例

    Shell脚本编程100例。 融汇 shell 脚本知识点,集大成之作。 本书实在是学习、进修、面试、居家旅行必备精品!

    python编写shell脚本

    python编写shell脚本python编写shell脚本python编写shell脚本python编写shell脚本python编写shell脚本python编写shell脚本python编写shell脚本python编写shell脚本python编写shell脚本python编写shell脚本

Global site tag (gtag.js) - Google Analytics