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

📄 wk_net_1032.ksh

📁 ksh 实现的基于hpux下的性能数据以及故障的采集程序。可以作为新手练手使用
💻 KSH
字号:
#!/bin/ksh# 本程序调用不需要参数# 载入 HPUX 实例定义的环境变量. $HOME/hpux/.setenv# 载入 OMS 系统为 HPUX 实例下传的环境信息. $HOME/hpux/config/ftp.cfg# 载入本任务定义的环境变量. $HOME/hpux/src/WK_NET_1032/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 1fitmpfile=$TMPPATH/${FUN_MARK}.tmptmpfile1=$TMPPATH/${FUN_MARK}.tmp1tmpfile2=$TMPPATH/${FUN_MARK}.tmp2if [[ ! -s $CFGPATH/WK_NET_1032.cfg ]] then   touch  $CFGPATH/WK_NET_1032.cfgfilanList=for i in `cat $CFGPATH/WK_NET_1032.cfg`do   lanlist=`echo $i | tr "," " "`   if [[ ${#i} != 0 ]] then      # 如果输入形式为  /dev/lan1 ,则处理成 lan1      i=`basename $i`      lanList="${lanList} ${i}"   fidone# 判断对 /etc/ioscan 的处理权限/etc/ioscan -fnC lan  >/dev/null 2>&1if [[ $? != 0 ]] then headline "000064" " 执行 /etc/ioscan 失败" logit "WARN"  " 执行 /etc/ioscan 失败" fputhead logit INFO "${FUN_NAME}结束}" exit 1fi# 如果没有输入文件,则根据定义的默认处理规则进行处理if [[ ${#lanList} = 0 ]] then  if [[ $NULLDEFAULTFLAG = 0 ]] then    headline "000063" "没有输入需要采集信息的网卡"    logit INFO "没有输入需要采集信息的网卡"    fputhead    logit INFO "${FUN_NAME}结束}"    exit  else   # 如果 输入文件为空时,默认处理方式是得到全部的合法值。则取得所有的网卡,如  lan0 lan1 lan2   for i in `/etc/ioscan -fnC lan | grep -e "/dev/lan" | awk '{ print $NF;}' `   do    if [[ ${#i} != 0 ]] then       i=`basename $i`       lanList="${lanList} ${i}"    fi   done  fifi# 构造本次任务的结果文件 headline "000000" "主机网卡状态采集成功"# 取网络接口数量/etc/ioscan -fnC lan | grep -e "^lan" | wc -l | read -r hostLanAmount/etc/lanscan > $tmpfile 2>/dev/null/etc/ioscan -fnC lan > $tmpfile1 2>/dev/nullfor i in $lanListdo  lanName=$i  hostLanAddr=  hostLanMAC=  hostLanType=  hostLanState=  hostLanAddonAttr=  hostLanPciHsc=  /etc/ifconfig $lanName >/dev/null 2>&1  if [[ $? != 0 ]] then    lanState=NA    logit "WARN" "采集网卡 $i 信息错误${lanName} ${lanState} "    infoline "013201" "采集网卡 $i 信息错误" "$hostLanAmount" "$lanName" "$hostLanAddr" "$hostLanMAC" "$hostLanType" "$hostLanState" "$hostLanAddonAttr" "$hostLanPciHsc"       continue  fi# 网卡的 IP 地址   /etc/ifconfig $lanName | grep -e "netmask" | read -r f1 hostLanAddr rest# 取网卡的物理地址 hostLanMAC 网卡状态 hostLanState 网卡类型 hostLanType  grep -e "$lanName" $tmpfile | read -r hardPath hostLanMAC cardID hostLanState lanTitle namePPA nameID hostLanTypeDesc dlpiSupport dlpiMjr rest# 网卡类型   hostLanType   1 -- 以太 2 -- 光纤[[ $hostLanTypeDesc = ETHER ]] &&  hostLanType=0 [[ $hostLanTypeDesc = ETHER ]] ||  hostLanType=1 # 取网卡的内外置属性 0 -- 内置(core)  1 -- 外置(addon)  grep -q -i -e "core"  $tmpfile1   if [[ $? = 0 ]] then    hostLanAddonAttr=0  else    hostLanAddonAttr=1   fi  ex $tmpfile1 <<! >/dev/null 2>&1   /$lanName/    -1,. w! $tmpfile2!# 取网卡的描述信息head -1 $tmpfile2 |  sed -e "s/.*INTERFACE[[:space:]]*\(.*\)$/\1/" | read -r hostLanDesc# 构造  网卡PCI/HSC属性  hostLanPciHsc   0 -- PCI 1 -- HSC  2 -- PCI/HSCpciFlag=head -1 $tmpfile2 |grep -q -v -i -e "PCI"if [[ $? = 0 ]] then   psiFlag=0fihscFlag=head -1 $tmpfile2 |grep -q -v -i -e "HSC"if [[ $? = 0 ]] then   hscFlag=0fi[[ ${#pciFlag} = 0 && ${#hscFlag} = 0 ]] && hostLanPciHsc=[[ ${#pciFlag} = 0 && ${#hscFlag} > 0 ]] && hostLanPciHsc=1[[ ${#pciFlag} > 0 && ${#hscFlag} = 0 ]] && hostLanPciHsc=0[[ ${#pciFlag} > 0 && ${#hscFlag} > 0 ]] && hostLanPciHsc=2infoline "013200" "主机网卡类型采集任务结果" "$hostLanAmount" "$lanName"  "$hostLanAddr" "$hostLanMAC" "$hostLanType" "$hostLanState" "$hostLanAddonAttr" "$hostLanPciHsc"done # 将本次任务的结果文件发送到 OMS 服务器fputrpt# 删除临时文件rm -f $tmpfile >/dev/null 2>&1rm -f $tmpfile1 >/dev/null 2>&1rm -f $tmpfile2 >/dev/null 2>&1logit INFO "${FUN_NAME}结束}"

⌨️ 快捷键说明

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