Проблема со скриптом

У нас есть скрипт, который проверяет и отправляет предупреждение, если процесс останавливается. По какой-то причине он не фиксирует его должным образом для всех пользователей и не отправляет предупреждения во всех сценариях. Пожалуйста, предложите, в чем может быть проблема.

Среды - 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 ответ

Я думаю, что @Mahesh уже указал проблему в комментарии.
Если вы хотите получать почту только один раз, вы можете сосчитать пользователей, выполняющих процесс httpd. Обратная косая черта в следующей команде предназначена для избежания grep -v grep,

ps -ef | grep "A\mc/apache/bin/httpd" | cut -d " " -f1 | grep "^uatwrk"| sort -u | wc -l
Другие вопросы по тегам