📄 wk_net_1032.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 + -