2016-05-13 7 views
1

Я пытаюсь создать сценарий, чтобы захватить текущее количество запущенных процессов, и если это число превышает 1000, тогда отправьте мне электронное письмо. Я пытаюсь сделать это в сценарии bash, что я просто использую задание cron для его вызова. Код, который я использую, ниже, и я уверен, что у меня просто есть что-то неуместное и просто нужен другой набор глаз.Bash Script, который получает подсчет запущенных процессов, а затем электронные письма, если над определенным порогом

PCOUNT=$(cat /proc/loadavg|awk '{print $4}'|awk -F/ '{print $2}') 
if [$PCOUNT > 100]; then 
    mail -s "Process Count" [email protected] 
fi 
+0

http://codereview.stackexchange.com/? – user3159253

+0

«Ваш вопрос должен содержать код, который уже работает правильно». – whiskeywrangler

+0

'awk' может принимать входной файл в качестве аргумента, поэтому вы можете удалить этот [UUOC] (http://porkmail.org/era/unix/award .html # кошка). Кроме того, используйте 'if ((pcount> 100)); затем ...; fi' вместо этого и прочитайте * Условные блоки * в [TestAndConditionals] (http://mywiki.wooledge.org/BashGuide/TestsAndConditionals) –

ответ

0

После много проб и ошибок я наконец нашел решение. В результате я получил вывод инструкции awk и записал ее в файл. Затем я копирую файл и отправляю вывод на почту.

PCOUNT=$(awk -F" |/" '{print $5}' /proc/loadavg) 
if ((PCOUNT>1000)); then 
    echo "Number of Running Processes is" $PCOUNT >>/tmp/mail.txt 
    cat /tmp/mail.txt | mail -s "Number of processes is rising" [email protected] 
fi 
0

Ваш неверный адрес в вашем заявлении if. Попробуйте (()) вместо [] на вашем if, как показано ниже:

PCOUNT=$(cat /proc/loadavg|awk '{print $4}'|awk -F/ '{print $2}') 
if (($PCOUNT > 100)); then 
    mail -s "Process Count" [email protected] 
fi 

ПРИМЕЧАНИЕ: У меня нет mail установки на моей системе, поэтому я не мог проверить команду mail.

0
  • вы можете сократить AWK для

    AWK -F "| /" '{печать $ 5}'/Proc/loadavg

  • если условие

    [$ PCOUNT -ge 1000

  • почта, передать $ PCOUNT

    почты -s «Процесс Количество: $ PCOUNT»

ИМХО, если это для предупреждения, почему бы вам не попробовать Nagios плагин

 Смежные вопросы

  • Нет связанных вопросов^_^