Shell

每小時 ping 一次並發送電子郵件失敗的腳本

  • September 25, 2018

我正在嘗試編寫一個 shell 腳本來每 1 小時 ping 一次我擁有的 5 台主機,如果它從這些主機中的任何一個收到任何故障,它會發送一封電子郵件警報,其中包含此失敗 ping 的結果。

像這樣的東西應該​​工作:

   #!/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 中添加一個條目,使其每小時執行一次。

引用自:https://unix.stackexchange.com/questions/345630