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

📄 mkunit

📁 ksh 实现的基于hpux下的性能数据以及故障的采集程序。可以作为新手练手使用
💻
字号:
#!/bin/ksh# 功能: 得到指定任务输出明细行的统计单位串# 用法: getUnitStr 任务号如  CM_CFG_0007# 返回 0 -- 获取成功  其他 -- 失败# 输出  unitStrfunction getUnitStr{  # 必须输入参数, 任务号如 CM_CFG_0007  if [[ $# != 1 ]] then     echo "调用函数 getTaskFmt 时没有输入任务号,如CM_CFG_0007"     return 1  fi    taskSqno=$1  FMTPATH=$HOME/hpux/fmt  fmtfile=${FMTPATH}/O_${taskSqno}.fmt  unitStr=  # 如果文件不存在,则退出  if [[ ! -s $fmtfile ]] then     echo "输入文件格式定义文件 $fmtfile 不存在或无内容"     return 2  fi  # label 0 -- 输入格式文件中无字典项 1 -- 输入格式文件中有字典项  label=0  # 从输入文件格式定义文件中得到数据字典项  while read -r f1 f2 rest  do     word=     # 如果字段长度为 0 ,则不处理     if [[ ${#f1} = 0 ]] then        continue     fi     # 不处理注释行     if [[ `expr "$f1" : '\(.\).*$'` = "#" ]] then        continue     fi         # 字典项的必须为 [a-zA-Z0-9_.] 格式 ,大小写字母,0-9数字,下划线, .      if [[ `expr "$f1" : '[a-zA-Z0-9_.]*'` = ${#f1} ]] then        label=1       if [[ $f1 = mesg || $f1 = mesgId ]] then          continue       fi       word=$f1       # 字典项的必须为 [a-zA-Z0-9_.] 格式 ,大小写字母,0-9数字,下划线, .      elif [[ `expr "$f2" : '[a-zA-Z0-9_.]*'` = ${#f2} ]] then       label=1       if [[ $f2 = mesg || $f2 = mesgId ]] then          continue       fi       word=$f2     fi     # 调用 seek 命令,得到输出文件中字段的统计单位     $HOME/hpux/etc/seek $word | head -1 | read -r localName word  type size unit rest      # 判断是否单词在数据字典中,如果不在,则报告错误     # 报告错误  与 "$word" 完全匹配的字段不在数据字典中     if [[ `expr "X${type}" : '.*数据字典.*$'` > 0 ]] then         echo "$localName $word  ${type}"        return 3     else        echo $type | tr "[[:upper:]]" "[[:lower:]]" | read -r wordType        case $wordType in          char|dec)            if [[ ${#unit} = 0 ]] then               unit=NA            fi            ;;          int)            unit=$size            if [[ ${#unit} = 0 ]] then               unit=NA            fi            ;;          *)            echo "$localName $word 的字段类型  $type 非法 "            continue            ;;        esac        unitStr="${unitStr}${unit}|"     fi    done < $fmtfile  # 如果输入格式文件中有字典项,则  if [[ $label = 1 ]] then    return 0  else     echo "输入文件格式定义文件 $fmtfile 无任何字典项,需检查该文件"    return 4  fi  return 0}while read -r taskId name restdo  # 如果字段长度为 0 ,则不处理  if [[ ${#taskId} = 0 ]] then     continue  fi  # 不处理注释行  if [[ `expr "$taskId" : '\(.\).*$'` = "#" ]] then     continue  fi  echo getUnitStr $taskId  unitStr=  getUnitStr $taskId   if [[ $? != 0 ]] then    echo "取任务 $taskId 的输出文件统计单位串失败"  else    unitStr="${unitStr}||||||||||"    echo "统计单位串为 $unitStr"  fidone < $HOME/hpux/config/task.cfg

⌨️ 快捷键说明

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