⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wk_log_1016.ksh

📁 ksh 实现的基于hpux下的性能数据以及故障的采集程序。可以作为新手练手使用
💻 KSH
字号:
# 本程序调用不需要参数# 载入 HPUX 实例定义的环境变量. $HOME/hpux/.setenv# 载入 OMS 系统为 HPUX 实例下传的环境信息. $HOME/hpux/config/ftp.cfg# 载入本任务定义的环境变量. $HOME/hpux/src/WK_LOG_1016/fun.cfg# 载入 公共函数部分。常用的函数定义在该文件中. $HOME/hpux/src/COMMON/common.ksh# 切换到文件上传路径cd $OUTPATHlogit INFO "${FUN_NAME}开始"######################## 判断激活标志是否为1#######################checkActiveFlagif [[ $taskFlag = 1 ]] then	logit WARN "${FUN_NAME}任务失效"	logit INFO "${FUN_NAME}结束"  exit 1elif [[ $agentFlag = 1 ]] then	logit WARN "HPUX实例失效"	logit INFO "${FUN_NAME}结束"  exit 1elif [[ $agentFlag = 2 ]] then	logit WARN "HPUX实例休眠"	logit INFO "${FUN_NAME}结束"  exit 1	fi############################# 判断配置文件是否存在或合法############################if (test ! -s $CFGPATH/WK_LOG_1016.cfg) then  headline 000082 "WK_LOG_1016功能输入参数文件不存在或者内容为空"  logit WARN "WK_LOG_1016功能输入参数文件不存在或者内容为空"  logit INFO "${FUN_NAME}结束"  fputhead  exit 1	fi# 判断影响该task运行的参数是否赋值cat $CFGPATH/WK_LOG_1016.cfg | awk '{print $2}' > $TMPPATH/1016c.tmpnull=while read -r checkParado	number=0	if (test $faultDesc -ne $null) then		number=`expr $number + 1`	fidone < $TMPPATH/1016c.tmpif [[ $number = 0 ]] then  headline 000082 "WK_LOG_1016功能输入参数文件输入数值不完整"	logit WARN "WK_LOG_1016功能输入参数文件输入数值不完整"	logit INFO "${FUN_NAME}结束"  fputhead  exit 1	fi############################# 判断对日志文件是否有读权限############################if (test ! -r /var/adm/syslog/mail.log) then  headline 000067 "对日志文件无读权限"  logit WARN "对日志文件无读权限"  logit INFO "${FUN_NAME}结束"  fputhead  exit 1	fi########################## 判断是否有执行命令权限#########################if [[ ! -x /usr/bin/cat ]] then  headline 000068 "$LOGNAME 对 /usr/bin/cat 没有执行权限"  logit WARN "$LOGNAME 对 /usr/bin/cat 没有执行权限"  logit INFO "${FUN_NAME}结束"  fputhead  exit 1fi# 为本次运行的最后一行打上标记	cat /var/adm/syslog/mail.log | tail -1 > $TMPPATH/1016a.tmp	read para1 < $TMPPATH/1016a.tmp	echo "$para1" > $TMPPATH/1016b.tmp | awk '{ gsub("\[","\\\\[",$0); gsub("\]","\\\\]",$0); print $0;}' $TMPPATH/1016b.tmp | read -r para# 生成临时文件,只包含关键字信息while read -r mesgId mesg journalName faultDesc do	case "$LAB" in	"")		grep -e "$faultDesc" /var/adm/syslog/mail.log > $TMPPATH/1016.tmp		result=`echo $?`	;;	*)		grep -e "$LAB" /var/adm/syslog/mail.log | wc -l > $TMPPATH/1016c.tmp		read lineflag < $TMPPATH/1016c.tmp				if (test $lineflag -eq 0) then			grep -e "$faultDesc" /var/adm/syslog/mail.log > $TMPPATH/1016.tmp			result=`echo $?`		else		ex /var/adm/syslog/mail.log <<! >/dev/null 2>&1?${LAB}?.+1 ,$ w!$TMPPATH/1016d.tmp!		grep -e "$faultDesc" $TMPPATH/1016d.tmp > $TMPPATH/1016.tmp			result=`echo $?`		fi	;;	esac		if (test $result -ne 0) then		flag=`cat $TMPPATH/1016.tmp | wc -l`		if (test $flag -eq 0) then			headline "000086" "无该关键字log $faultDesc 信息"		  logit WARN "无该关键字log $faultDesc 信息"  		logit INFO "${FUN_NAME}结束"			fputhead	  	exit 1		else	  	headline "000080" "mail.log告警信息采集任务失败"		  logit WARN "mail.log告警信息采集任务失败"  		logit INFO "${FUN_NAME}结束"	  	fputhead	  	exit 1	  fi	fi	# 处理日期,并生成数据文件		while read -r time1 time2 time3 logcontent	do		formate_month $time1				time1=$month				if (test ${#time2} -eq 1) then			time2="0$time2"		fi				faultTime="${time1}${time2} ${time3}"				prepare=`echo $faultTime | sed -e 's/ //g' -e 's/://g'`		headline "000000" "查询mail.log告警信息"				flag=0		# 构造本次任务的结果文件		infoline "${mesgId}" "${mesg}" "${journalName}" "${faultTime}" "${logcontent}"	done < $TMPPATH/1016.tmpdone < $CFGPATH/WK_LOG_1016.cfg	ex $HOME/hpux/src/WK_LOG_1016/fun.cfg <<! >/dev/null 2>&1%s/LAB=.*$/LAB="${para}"/. px!	  # 将本次任务的结果文件发送到 OMS 服务器          	fputrpt                  	logit INFO "${FUN_NAME}结束"                  	# 删除临时文件	rm -f $TMPPATH/1016.tmp	rm -f $TMPPATH/1016a.tmp 	rm -f $TMPPATH/1016b.tmp 	rm -f $TMPPATH/1016c.tmp

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -