тревога, когда мой хозяин не работает - PullRequest
0 голосов
/ 08 мая 2018

У меня есть скрипт bash, который может помочь мне узнать, когда некоторые из моих серверов не работают.

 #!/bin/bash
HOSTS="192.168.11.154 192.168.11.155"
COUNT=5 

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

if pingtest $HOSTS
then
  # 100% failed
zenity --warning --text="<span size=\"xx-large\">WARNING</span>\n\n\n<b>*IP*</b> is down" --title="SERVER DOWN" --ok-label="OKAY"
fi

Итак, как я могу узнать, какой конкретный сервер не работает? Я хочу обмен IP на 192.168.11.154 или 192.168.11.155 (в зависимости от того, что недоступно)

Ответы [ 2 ]

0 голосов
/ 08 мая 2018
#!/bin/bash

HOSTS="192.168.11.154 192.168.11.155"
COUNT=5

pingtest () {
  ping -c "$COUNT" "$1" || return 1
}

for H in $HOSTS; do
  if ! pingtest $H; then
    zenity --warning --text="<span size=\"xx-large\">WARNING</span>\n\n\n<b>${H}</b> is down" --title="SERVER DOWN" --ok-label="OKAY"
  fi
done
0 голосов
/ 08 мая 2018

Лучше хранить ips в двух отдельных переменных и вызывать функцию дважды: -

HOSTS1="192.168.11.154"
HOSTS2="192.168.11.155"

if pingtest $HOSTS1
 //

if pingtest $HOSTS2
...