📄 wk_pid_1007.ksh
字号:
#!/bin/ksh# 本程序调用不需要参数# 载入 HPUX 实例定义的环境变量. $HOME/hpux/.setenv# 载入 OMS 系统为 HPUX 实例下传的环境信息. $HOME/hpux/config/ftp.cfg# 载入本任务定义的环境变量. $HOME/hpux/src/WK_PID_1007/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 1fi# label 0 -- 无输入文件 1 -- 有输入文件label=if [[ ! -s $CFGPATH/WK_PID_1007.cfg ]] then label=0 # 如果输入文件为空,采取什么动作 0 -- 报告错误返回1 -- 默认将全部数据取出,生成输出文件 if [[ $NULLDEFAULTFLAG = 0 ]] then headline "000617" "配置文件 $CFGPATH/WK_PID_011007.cfg 不存在" logit "WARN" "配置文件 $CFGPATH/WK_PID_011007.cfg 不存在" logit INFO "${FUN_NAME}结束}" fputhead exit else logit "INFO" "没有输入文件的情况下,要求将全部进程的信息取出" fielse label=1fitmpfile=$TMPPATH/ps.tmpcmdList=/usr/bin/getconf _SC_PAGE_SIZE | read -r pageSizeheadline "000000" "采集主机进程信息成功"# 如果没有输入文件,同时又要求将全部文件系统的信息取出if [[ $label = 0 && $NULLDEFAULTFLAG = 1 ]] then UNIX95= ps -ef -o user,comm,time,sz,state | tail +2 > $tmpfile # 0 Nonexistent S Sleeping W Waiting # R Running I Intermediate Z Terminated # T Stopped X Growing # 构造本次任务的结果文件 while read -r userName procName procTime procMemPage procStateFlag rest do [[ $procStateFlag = 0 ]] && procState=Nonexistent [[ $procStateFlag = S ]] && procState=Sleeping [[ $procStateFlag = W ]] && procState=Waiting [[ $procStateFlag = R ]] && procState=Running [[ $procStateFlag = I ]] && procState=Intermediate [[ $procStateFlag = Z ]] && procState=Terminated [[ $procStateFlag = T ]] && procState=Stopped [[ $procStateFlag = X ]] && procState=Growing # 将 sz 单位转为为 Kbytes echo "$procMemPage * $pageSize / 1024 " | bc | read -r procMemSize infoline "010700" "主机进程信息采集任务结果" "${procName}" "${procState}" "${procTime}" "${procMemSize}" done < $tmpfileelse # for i in `cat $CFGPATH/WK_PID_011007.cfg` while read -r user cmdList do UNIX95= ps -C "${cmdList}" -o user,comm,time,sz,state | tail +2 > $tmpfile # 0 Nonexistent S Sleeping W Waiting # R Running I Intermediate Z Terminated # T Stopped X Growing # 构造本次任务的结果文件 while read -r userName procName procTime procMemPage procStateFlag rest do if [[ $userName != $user ]] then continue fi [[ $procStateFlag = 0 ]] && procState=Nonexistent [[ $procStateFlag = S ]] && procState=Sleeping [[ $procStateFlag = W ]] && procState=Waiting [[ $procStateFlag = R ]] && procState=Running [[ $procStateFlag = I ]] && procState=Intermediate [[ $procStateFlag = Z ]] && procState=Terminated [[ $procStateFlag = T ]] && procState=Stopped [[ $procStateFlag = X ]] && procState=Growing # 将 sz 单位转为为 Kbytes echo "$procMemPage * $pageSize / 1024 " | bc | read -r procMemSize infoline "010700" "主机进程信息采集任务结果" "${procName}" "${procState}" "${procTime}" "${procMemSize}" done < $tmpfile done < $CFGPATH/WK_PID_1007.cfgfi# 删除临时文件rm -f $tmpfile# 将本次任务的结果文件发送到 OMS 服务器fputrptlogit INFO "${FUN_NAME}结束}"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -