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

📄 wk_base_1018.ksh

📁 ksh 实现的基于hpux下的性能数据以及故障的采集程序。可以作为新手练手使用
💻 KSH
字号:
#!/bin/ksh# 本程序调用不需要参数# 载入 HPUX 实例定义的环境变量. $HOME/hpux/.setenv# 载入 OMS 系统为 HPUX 实例下传的环境信息. $HOME/hpux/config/ftp.cfg# 载入本任务定义的环境变量. $HOME/hpux/src/WK_BASE_1018/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 [[ ! -x /etc/ioscan ]] then  headline 000100 "$LOGNAME 对 /etc/ioscan 没有执行权限"  logit WARN "$LOGNAME 对 /etc/ioscan 没有执行权限"  logit INFO "${FUN_NAME}结束"  fputhead  exit 1fiif [[ ! -x /usr/bin/uname ]] then  headline 000101 "$LOGNAME 对 /usr/bin/uname 没有执行权限"  logit WARN "$LOGNAME 对 /usr/bin/uname 没有执行权限"  logit INFO "${FUN_NAME}结束"  fputhead  exit 1fiif [[ ! -x /usr/sbin/dmesg ]] then  headline 000102 "$LOGNAME 对 /usr/sbin/dmesg 没有执行权限"  logit WARN "$LOGNAME 对 /usr/sbin/dmesg 没有执行权限"  logit INFO "${FUN_NAME}结束"  fputhead  exit 1fiif [[ ! -x /usr/sbin/swlist ]] then  headline 000103 "$LOGNAME 对 /usr/sbin/swlist 没有执行权限"  logit WARN "$LOGNAME 对 /usr/sbin/swlist 没有执行权限"  logit INFO "${FUN_NAME}结束"  fputhead  exit 1fi###########################查询主机名称##########################hostName=`hostname`backcode1=`echo $?`############################################################ 查询主机ip地址,通过循环的方式找出可能存在的所有网卡信息###########################################################ioscan -fknC lan > $TMPPATH/1018.tmpif [[ $? != 0 ]] then   headline "000072" "ioscan 命令执行失败"   logit WARN "ioscan 命令执行失败"   logit INFO "${FUN_NAME}结束"   fputhead   exitfilancardnumbers=`grep -e "^lan" $TMPPATH/1018.tmp | awk '{print $2}' | tail -1`i=0hostIp=while [ $i -le $lancardnumbers ]do	ifconfig lan${i} | grep inet | awk '{print $2}' 2> /dev/null > $TMPPATH/1018-e.tmp	hostIptemp=`cat $TMPPATH/1018-e.tmp`	return=`echo $?`		echo $return >> $TMPPATH/1018-b.tmp		if [[ $return = 0 ]] then		hostIp="${hostIptemp},${hostIp}"	fi		i=`expr $i + 1`done# 去除字符串前后的逗号length=`expr length $hostIp`length=`expr $length - 1`	if [[ `expr substr $hostIp 1 1` = "," ]] then	hostIp=`expr substr $hostIp 2 $length`filength=`expr length $hostIp`	if [[ `expr substr $hostIp $length 1` = "," ]] then	length=`expr $length - 1`	hostIp=`expr substr $hostIp 1 $length`filines=`grep 0 $TMPPATH/1018-b.tmp | wc -l`# 判断是否正常执行完毕,只要有一个成功就算成功if [[ $lines = 0 ]] then	headline 000085 "采集主机配置月度信息失败"	logit WARN "采集主机配置月度信息失败"	logit INFO "${FUN_NAME}结束"	fputhead	exit 1fi#################### 查询主机厂商名称###################hostPlantName=`uname -s`backcode3=`echo $?`################### 查询主机CPU个数##################hostCPUAmout=`ioscan -fknC processor | grep processor | wc -l`backcode4=`echo $?`################### 查询主机CPU型号##################ioscan -fnkC processor | tail +3 | awk '{print $6}'> $TMPPATH/1018-c.tmpbackcode5=`echo $?`hostCPUModel=while read -r model do	hostCPUModel="$hostCPUModel,$model"done < $TMPPATH/1018-c.tmplength=`expr length $hostCPUModel`length=`expr $length - 1`	if [[ `expr substr $hostCPUModel 1 1` = "," ]] then	hostCPUModel=`expr substr $hostCPUModel 2 $length`fi################### 查询主机CPU主频##################hostCPUFrequency=`echo "itick_per_usec/D" | adb /stand/vmunix /dev/mem | tail -1 | awk '{print $2}'`backcode6=`echo $?`################### 查询主机内存大小##################hostMemSize=`dmesg | grep "Physical:" | awk '{print $2 "," $3}'`hostMemSize="${hostMemSize}"backcode7=`echo $?`length=`expr length $hostMemSize`	if [[ `expr substr $hostMemSize $length 1` = "," ]] then	length=`expr $length - 1`	hostMemSize=`expr substr $hostMemSize 1 $length`fi################################ 查询主机操作系统版本号和位数###############################hostOSVersion1=`swlist | grep -e "Base OS" | grep bit | awk '{print $4}'`hostOSVersion2=`swlist | grep -e "Base OS" | sed '/bit/d' | awk '{print $2}'`hostOSVersion="$hostOSVersion1,$hostOSVersion2"backcode8=`echo $?`############################ 查询主机本地磁盘空间大小###########################ioscan -fnkC disk | grep disk* | awk '{print $NF}' | sed 's/\(.*\)G.*$/\1/g' > $TMPPATH/1018-d.tmpbackcode9=`echo $?`hostDiskVolume=0while read -r disksizedo	hostDiskVolume=`echo "scale = 2; $hostDiskVolume + $disksize" | bc`done < $TMPPATH/1018-d.tmphostDiskVolume="$hostDiskVolume,Gbytes"#判断是否正常收集完信息if (test ${backcode1} -ne "0" -o ${backcode3} -ne "0" -o ${backcode4} -ne "0" -o ${backcode5} -ne "0" -o ${backcode6} -ne "0" -o ${backcode7} -ne "0" -o ${backcode8} -ne "0" -o ${backcode9} -ne "0") then	headline 000085 "采集主机配置月度信息失败"	logit WARN "采集主机配置月度信息失败"	logit INFO "${FUN_NAME}结束"	fputhead	exit 1fi#生成头信息和行信息文件headline "000000" "查询主机配置月度信息"infoline "011801" "查询主机配置月度信息" "${hostName}" "${hostIp}" "${hostPlantName}" "${hostCPUAmout}" "${hostCPUModel}" "${hostCPUFrequency}" "${hostMemSize}" "${hostOSVersion}" "${hostDiskVolume}"# 将本次任务的结果文件发送到 OMS 服务器          fputrpt                  logit INFO "${FUN_NAME}结束"# 删除临时文件rm -f $TMPPATH/1018-a.tmprm -f $TMPPATH/1018-b.tmprm -f $TMPPATH/1018-c.tmprm -f $TMPPATH/1018-d.tmp

⌨️ 快捷键说明

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