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

📄 cm_exch_0006.ksh

📁 ksh 实现的基于hpux下的性能数据以及故障的采集程序。可以作为新手练手使用
💻 KSH
字号:
#!/bin/ksh#(@) 普通文件传输机制# 本程序调用不需要参数# 载入 HPUX 实例定义的环境变量. $HOME/hpux/.setenvif [[ ENABLEFLAG = 1 ]]  then  exitfi# 载入 OMS 系统为 HPUX 实例下传的环境信息. $HOME/hpux/config/ftp.cfg# 载入本任务定义的环境变量. $HOME/hpux/src/CM_EXCH_0006/fun.cfg# 载入 公共函数部分。常用的函数定义在该文件中. $HOME/hpux/src/COMMON/common.kshcd $OUTPATH######################## 判断激活标志是否为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 1fiif [[ ! -s  $CFGPATH/urgent.cfg ]] then  # 如果输入文件为空,采取什么动作  0 -- 报告错误返回1 --  默认将全部数据取出,生成输出文件  # 根据本服务的实际情况,必须存在输入配置文件,因此 NULLDEFAULTFLAG = 0  NULLDEFAULTFLAG = 0  if [[ $NULLDEFAULTFLAG = 0 ]] then    headline  "000606" "配置文件 $CFGPATH/urgent.cfg 不存在"    logit "WARN" "配置文件 $CFGPATH/urgent.cfg 不存在"    logit INFO "${FUN_NAME}结束}"    fputhead    exit  fifisqno=`date +'%Y%m%d%H%M%S'`# 生成本次需要传输的文件类型清单,如果没有,则报告后退出ls -1 *.txt > $TMPPATH/ftype.tmpa 2>/dev/nullls -1 *.txt.gz >> $TMPPATH/ftype.tmpa 2> /dev/null# 将文件的扩展名(.gz  .txt )去掉ex $TMPPATH/ftype.tmpa <<EOF >/dev/null 2>&1%s/.gz//gxEOFex $TMPPATH/ftype.tmpa <<EOF >/dev/null 2>&1%s/.txt//gxEOFex $TMPPATH/ftype.tmpa <<EOF >/dev/null 2>&1%s/_[[:digit:]]\{14\}$//gxEOFex $TMPPATH/ftype.tmpa <<EOF >/dev/null 2>&1%s/O_//gxEOF# 得到当前的文件类型 sort $TMPPATH/ftype.tmpa | uniq > $TMPPATH/ftype.tmpb# 得到当前的普通文件类型列表touch  $TMPPATH/ftype.tmpccat $TMPPATH/ftype.tmpb | xargs -n 1 -I {} grep -e {}  $CFGPATH/urgent.cfg >> $TMPPATH/ftype.tmpc 2>/dev/nullcat $TMPPATH/ftype.tmpc $TMPPATH/ftype.tmpb | sort | uniq -u > $TMPPATH/ftype.tmpdrm -f $TMPPATH/ftype.tmpa $TMPPATH/ftype.tmpb  $TMPPATH/ftype.tmpc# 如果没有普通文件上传,则退出if [[ ! -s $TMPPATH/ftype.tmpd ]] then  logit DEBUG "本次没有普通文件上传"  headline 000000 "本次文件上传成功"#  fputhead#  exit 0fi# 生成需要压缩后传送的普通文件清单cat $TMPPATH/ftype.tmpd 2>/dev/null |xargs  -n 1  -I {} echo ls -1 $OUTPATH/O_{}*.txt 2>/dev/null | ksh > $TMPPATH/generallist.$sqno 2>/dev/null# 将本周期处理的文件传输到OMS 服务器上面while read -r f1 restdo  # 压缩本次的传输的文件  logit "DEBUG" "压缩本次的传输的文件 gzip -f $f1"   gzip -f $f1  # 传送该文件  logit "DEBUG" "传送该文件 fput ${f1}.gz"  fput ${f1}.gz  # 如果传输成功,将压缩文件删除  if [[ $? = 0 ]] then     rm -f ${f1}.gz  fidone < $TMPPATH/generallist.$sqnorm -f $TMPPATH/generallist.$sqno# 将最近保留周期内的压缩文件传送到 OMS 服务上面while read -r  mark  restdo  if [[ ${#mark} = 0 ]] then     continue  fi  head=`expr "$mark" : '^\(.\)'`  if [[ $head = "#" ]] then     continue  fi   # 取该任务的文件保存最大周期  grep -e "${mark}" $CFGPATH/ftpcycle.cfg 2>/dev/null | read -r  trcd cycle rest  if [[ ${#trcd} = 0 ]] then     cycle=2  fi  # 得到文件保存最大周期内列表,重新上传一遍,此处逻辑需要在确认  for i in `ls -1rt *${mark}*.gz 2>/dev/null | tail -${cycle}`  do    # 传送该文件    fput $i    logit DEBUG "传送文件 $i"    # 如果传输成功,将压缩文件删除    if [[ $? = 0 ]] then       rm -f $i    fi  done  done  < $TMPPATH/ftype.tmpdrm -f $TMPPATH/ftype.tmpdlogit INFO  "本次文件上传成功"# 构造本次任务的结果文件headline 000000 "本次文件上传成功"# 将本次任务的结果文件发送到 OMS 服务器fputheadlogit INFO "${FUN_NAME}结束"

⌨️ 快捷键说明

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