脚本问题

时间:2015-09-08 08:09:00

标签: shell unix ksh

我们有一个脚本,如果进程发生故障,它会检查并发送警报。由于某种原因,它并没有为所有用户正确捕获它,也没有在所有情况下发送警报。 请提出可能存在的问题。

环境 - uatwrk1,uatwrk2,uatwrk3 ------- uatwrk100
ServerName - myuatserver
要检查的进程 - Amc / apache / bin / httpd

脚本是:

#!/bin/ksh
  i=1
  while (( i<=100 ))
  do
    myuser=uatwrk$i
    NoOfProcess=`ps -ef | grep -v grep | grep $myuser | grep "Amc/apache/bin/httpd" | wc -l`
    if [[ $NoOfProcess -eq 0 ]]
       then
          echo "Amc process is down, sending an alert"
          # Assume sendAlert.ksh is fine
          ./sendAlert.ksh  
    else
       echo "Amc process is running fine" >> /dev/null
    fi
  (( i+=1 ))
  done

1 个答案:

答案 0 :(得分:0)

我认为@Mahesh已经在评论中表明了这个问题 如果您只想拥有一次邮件,则可以计算运行httpd进程的用户。以下命令中的反斜杠用于避免grep -v grep

ps -ef | grep "A\mc/apache/bin/httpd" | cut -d " " -f1 | grep "^uatwrk"| sort -u | wc -l