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