Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell 用于检查应用程序运行状况的通用脚本_Shell - Fatal编程技术网

Shell 用于检查应用程序运行状况的通用脚本

Shell 用于检查应用程序运行状况的通用脚本,shell,Shell,我已经编写了一个shell脚本(Health_app.sh),用于检查应用程序的运行状况。为此,它从App_详细信息文件中获取进程的名称,并检查PID(是否正在运行),如果没有运行,则在日志(字段3)中对该进程进行grep,并向App_详细信息文件(字段4)中提到的电子邮件id发送电子邮件 应用程序_详细信息包含以下记录: 流程名称|流程描述|日志文件|路径|电子邮件 abcd |调用 dataready |/123/456/log|vikas@yahoo.com pqrs |第二 工艺流程……

我已经编写了一个shell脚本(Health_app.sh),用于检查应用程序的运行状况。为此,它从App_详细信息文件中获取进程的名称,并检查PID(是否正在运行),如果没有运行,则在日志(字段3)中对该进程进行grep,并向App_详细信息文件(字段4)中提到的电子邮件id发送电子邮件

应用程序_详细信息包含以下记录:

流程名称|流程描述|日志文件|路径|电子邮件

abcd |调用 dataready |/123/456/log|vikas@yahoo.com

pqrs |第二 工艺流程………../123/456/log|vikas@yahoo.com

以下是我的脚本的外观:

  export App_Details=/home/123/sanity/App_Details

  while read line
  do
      export procname=$(echo $line | cut -d " " -f1)
      export PROCDES=$(echo $line | cut -d " " -f2)
      #if ps -ef |grep [`echo $procname|awk '{print substr($0,1,1)}'`] [`echo $procname|awk '{print substr($0,2,length($0))}'`]> /dev/null
      if ps -ef |grep -q [`echo $procname|awk '{print substr($0,1,1)}'`] `echo $procname|awk '{print substr($0,2,length($0))}'`

      then
          export part1=[`echo $procname|awk '{print substr($0,1,1)}'`]
          export part2=`echo $procname|awk '{print substr($0,2,length($0))}'`
          export PROCID=`ps -ef |grep $part1$part2|awk -F ' ' '{print $2}'`
      else
          export PROCID="OFFLINE"
          trace_path=$(echo $line | cut -d " " -f3)
          export mail=$(echo $line | cut -d " " -f4)
          file_name=`ls -rt $trace_path/$procname*.trc 2>/dev/null | tail -1`
        #export PROCDES=$(echo `tail -10 $file_name`)
        (echo `tail -10 $file_name`) >> send.txt
        mailx -s "Please find the alerts for your application OFFLINE services" vikas@domain.com < send.txt
      fi
      echo $PROCID|awk '{ printf("%-20s", $0)}'
      echo $procname|awk '{ printf("%-20s", $0)}'
      echo $PROCDES|awk '{ printf("%-20s\n", $0)}'
  done<$App_Details
export App_Details=/home/123/sanity/App_Details
读行时
做
导出procname=$(echo$行| cut-d”“-f1)
导出过程=$(echo$行| cut-d”“-f2)
#如果ps-ef | grep[`echo$procname | awk'{print substr($0,1,1)}`][`echo$procname | awk'{print substr($0,2,length($0))}`>/dev/null
如果ps-ef | grep-q[`echo$procname | awk'{print substr($0,1,1)}`]`echo$procname | awk'{print substr($0,2,length($0))}'`
然后
导出部分1=[`echo$procname | awk'{print substr($0,1,1)}`]
导出部分2=`echo$procname | awk'{print substr($0,2,length($0))}'`
export PROCID=`ps-ef | grep$part1$part2 | awk-F''{print$2}'`
其他的
export PROCID=“脱机”
跟踪路径=$(回显$行|切割-d”“-f3)
导出邮件=$(echo$行| cut-d”“-f4)
file_name=`ls-rt$trace_path/$procname*.trc 2>/dev/null | tail-1`
#导出过程=$(echo`tail-10$文件名`)
(echo`tail-10$file_name`)>>send.txt
mailx-s“请查找应用程序脱机服务的警报”vikas@domain.com不要使用
-q
。如果您不想看到,只需将grep命令的stdout和stderr重定向到
/dev/null
,所以不要使用
-q
。如果您不想看到,只需将grep命令的stdout和stderr重定向到
/dev/null
,所以不要使用
-q
。如果不想看到,只需将grep命令的stdout和stderr重定向到
/dev/null