簡體   English   中英

電子郵件警報和ping腳本

[英]Script for email alert and ping

我需要幫助來更新此腳本,以便如果ping失敗它將向另一個主機發送另一個ping(如果ping失敗,則立即發送電子郵件)。 如何通過此腳本完成此操作?

#!/bin/bash

HOSTS="IP ADRESS"
COUNT=4

for myHost in $HOSTS
do
    count=$(ping -c $COUNT $myHost | grep 'received' | awk -F',' '{ print $2 }' | a$
    if [ $count -eq 0 ]; then
        # 100% failed
        echo "Server failed at $(date)" | mail -s "Server Down" myadress@gmail.com
        echo "Host : $myHost is down (ping failed) at $(date)"
    fi
done

您可以將ping東西放入一個函數中。 您不需要處理( grepping結果:您可以依靠ping返回出口狀態。

#!/bin/bash
HOSTS="IP1 IP2 IP3 IP4 IP5"
COUNT=4

pingtest(){
  for myHost in "$@"
  do
    ping -c "$COUNT" "$myHost" && return 1
  done
  return 0
}

if pingtest $HOSTS
then
  # 100% failed
  echo "Server failed at $(date)" | mail -s "Server Down" myadress@gmail.com
  echo "All hosts ($HOSTS) are down (ping failed) at $(date)"
fi

嘗試使用數組:

#!/bin/bash
HOSTS_ARRAY=("IP_ADRESS" "ANOTHER_IP" "YET_ANOTHER")
COUNT=4
for myHost in "${HOSTS_ARRAY[@]}"
do
     count=$(ping -c $COUNT $myHost | grep 'received' | awk -F',' '{ print $2 }' | a$
     if [ $count -eq 0 ]; then
         # 100% failed
         echo "Server failed at $(date)" | mail -s "Server Down" myadress@gmail.com
         echo "Host : $myHost is down (ping failed) at $(date)"
     fi
done

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM