`
javaPrimary
  • 浏览: 60851 次
  • 性别: 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
分享到:
评论

相关推荐

    shell脚本语言.pdf

    "shell脚本语言" Shell 简介: Shell 是一种命令语言和程序设计语言,用户可以通过 Shell 完成大部分工作。Shell 既可以交互式地解释和执行用户输入的命令,也可以定义各种变量和参数,提供了许多控制结构,包括...

    shell脚本编程.pdf

    Shell脚本中的运算符主要包含整数测试运算、字符串测试运算、文件测试运算和逻辑运算等。整数测试可以判断两个整数的相等、不等、大于、大于等于、小于或小于等于关系。字符串测试可以进行空字符串测试或模式匹配。...

    高级shell脚本编程指南

    2. **流程控制**:shell脚本中的流程控制包括条件语句(if-else)和循环结构(for、while)。例如,if语句用于基于特定条件执行代码块,while和for循环则用于重复执行任务。还有case语句,提供了一种多分支的选择...

    6,Shell脚本基础

    Shell脚本基础 Shell脚本基础是 Linux 操作系统中的一种脚本语言,用于自动化系统管理和操作任务。Shell脚本由多条命令聚集在一个文件中,自上而下的执行文件的命令。下面是 Shell 脚本基础知识点的总结: Shell...

    第10章 Shell脚本编程1

    Shell脚本是一种使用Shell解释器执行的文本文件,它包含了操作系统命令、变量、控制结构等编程元素,常用于自动化执行一系列系统管理任务。编写Shell脚本的基本步骤包括创建脚本文件、添加执行权限以及执行脚本。 1...

    linux的shell脚本的学习,适合初学者使用

    Shell 本身不支持复杂的数学运算,但可以借助 `expr` 等外部程序来进行简单的算术运算: ```sh result=$(expr 2 + 3) echo "The result is: $result" ``` ##### 5. Shell 命令和流程控制 在 Shell 脚本中可以使用...

    Linux云计算之Shell脚本.zip

    网盘文件永久链接 Shell变量-01、Shell变量.mp4 Shell概述-01、命令组合运用.mp4 01、元字符.mp4 ...服务脚本设计-04、case分支与服务脚本.mp4 服务脚本设计-05、awk文本处理.mp4 .........................

    shell-script.zip

    10. **shell_fileoperation**: 文件操作是Shell脚本中的核心功能,包括读写文件、创建删除文件和目录、重命名和移动文件等。这个文件可能会涵盖各种文件I/O操作的示例,如`echo > file`、`cat`、`cp`、`mv`、`rm`等...

    shell脚本编译基础

    ### Shell脚本编译基础知识点 #### 一、Shell脚本编写规则 ##### 1.1 必要条件 - **环境准备**:确保系统已安装支持的Shell环境,如Bash、Sh等。 - **编辑器选择**:可以选择任何文本编辑器来编写脚本,如vi/vim...

    SHELL编程讲义

    3. **SHELL脚本结构**:一个基本的SHELL脚本通常包括shebang(#!/bin/bash)来指定解释器,变量声明,以及命令序列。 4. **命令行参数**:在SHELL脚本中,$0代表脚本名,$1到$9分别代表传递给脚本的前9个参数。 5....

    shell 程序设计

    控制结构包括循环(如for、while)和分支(如if-else)。在Shell脚本中,可以使用这些结构实现复杂的逻辑操作。例如,一个简单的for循环可以用来遍历数组或执行重复任务。 参数访问在Shell编程中也非常重要,当运行...

    bash脚本编程详解

    此外,Shell脚本支持管道 (`|`)、重定向 (`>` 和 `>>`) 等高级功能。 **2.4 简单脚本示例** 以下是一个简单的Bash脚本示例,用于打印出“Hello, World!”: ```bash #!/bin/bash echo "Hello, World!" ``` 要运行...

    精通linux_shell编程教程pdf完整版

    书中还讨论了脚本编程风格、调试、陷阱处理、脚本优化、安全和可移植性问题,以及Windows下Shell脚本的编写等。 在最后的部分,书中还提供了一些额外的资源,如捐献的脚本、参考卡片、学习Sed和Awk的小手册、带有...

    Shell 設計入門,很详细的教学笔记

    本文档旨在帮助初学者理解Shell脚本的基本结构、命令、变量设定、输入输出处理、正则表达式以及流程控制等关键概念。 1. **Bash Shell结构与简单示例** Bash是GNU项目下的一个Unix shell,广泛应用于Linux和Unix...

    shell自研基础学习笔记

    总结,shell脚本学习涵盖了基础概念、变量管理、输入输出、条件控制、循环、函数、数组和正则表达式等核心内容,同时也涉及到了一些高级工具如grep、sed和awk的使用。这些知识点构成了shell编程的基础,对于Linux...

    LINUX与UNIX SHELL编程指南

    - 基本元素包括变量、条件语句(if-else)、循环结构(for, while)和函数定义。 4. **变量** - 变量用于存储数据,例如`NAME="John"`。 - `$`符号用于引用变量,如`echo $NAME`将打印"John"。 - 变量类型没有...

    高级bash脚本指导

    - 循环和分支语句的编写,包括`for`、`while`、`until`循环的控制和使用。 - 命令替换的机制,允许脚本捕获命令的输出并用作其他命令的输入。 - 字符串处理,包括字符串的切分、长度计算和匹配。 5. **Shell进阶...

    人人都能学会的企业SHELL编程.docx

    在本文档中,我们将深入学习Shell编程的基础知识,包括变量、条件语句、循环结构、选择语句、函数、数组以及与文本处理相关的awk和sed命令。 1. **Shell入门简介** - Shell作为操作系统的接口,负责解释用户输入的...

Global site tag (gtag.js) - Google Analytics