每小时 ping 一次且电子邮件失败的脚本

每小时 ping 一次且电子邮件失败的脚本

我正在尝试编写一个 shell 脚本,每 1 小时 ping 5 台主机,如果它从任何这些主机收到任何失败,它会发送一封电子邮件警报,其中包含此失败 ping 的结果。

答案1

像这样的东西应该有效:

    #!/bin/bash

ping_targets="server1 server2 server3 server4 server5"
failed_hosts=""

for i in $ping_targets
do
   ping -c 1 $i > /dev/null
   if [ $? -ne 0 ]; then
      if [ "$failed_hosts" == "" ]; then
         failed_hosts="$i"
      else
         failed_hosts="$failed_hosts, $i"
      fi
   fi
done

if [ "$failed_hosts" != "" ]; then
   echo $failed_hosts| mailx -s "Failed ping targets" email@domain
fi

将其放入脚本中,更改主机名和电子邮件地址,使其可执行,并向 cron 添加一个条目,使其每小时运行一次。

相关内容