我需要编写一个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
请帮帮我,
谢谢,
答案 0 :(得分:0)
不是检查$ADM
是0
,而是检查它是否3
。
ADM=`ps -ef | grep -c '[A]dm`
if [ $ADM -ne 3 ]
then
echo "AdmServer is down on Dev $hostname" | mail -s xxxx.gmail.com
fi
-c
的{{1}}选项会返回匹配数,因此您无需使用grep
。将其中一个字符放在括号中是解析wc -l
输出的一种技巧,因此您不需要ps
(因为现在grep -v grep
的参数不再与grep
相同您正在搜索的流程名称)。您应该使用-eq
和-ne
来比较数字; ==
和!=
用于比较字符串。
在分配仅在该shell脚本中使用的变量时,不需要使用export
。 export
用于创建环境变量,这些变量由子进程继承。