如何检测正在运行的进程少于 x 个

如何检测正在运行的进程少于 x 个

我需要编写一个 shell 脚本来查看 ADM 进程是否已关闭,我们需要通过电子邮件收到警报。我已经使用下面的脚本完成了该操作。如果我们在一台机器上安装了一台 ADM 服务器,则工作正常。我的问题是,我在一台计算机上安装了 3 个 ADM 服务器,并且我不确定如何编写 shell 脚本来在这种情况下触发警报。

脚本:-

export ADM =`ps -ef  | grep Adm | grep -v grep | wc -l`

if [ $ADM == 0 ];
then
    echo "AdmServer is down on Dev $hostname" | mail -s xxxx.gmail.com
fi

每当 Adm1、Adm2 或 Adm3 出现故障时,我们都需要收到警报。

答案1

您的脚本当前计算它可以找到的 ADM 进程的数量,如果计数为零,则当前会发送电子邮件。

您的新标准是计数应该是 3,因此如果计数是 0 或 1 或 2,您就想发送电子邮件。

您需要更改第3行

if [ $ADM -lt 3 ];

答案2

[ 3 -gt "$(ps -Aocomm=|grep -c ADM)" ] &&
mail -s xxxx.gmail.com <<MAIL
AdmServer is down on Dev $hostname
MAIL

我认为上面的命令应该可以代替你的命令。

相关内容