Pruebe la secuencia de comandos si el host vuelve a estar en línea


2

Por ejemplo, sistema: Ubuntu / Debian.

Como muchos de ustedes hacen esto probablemente a través de ping y una terminal, siempre olvido esta terminal cuando cambio a otra tarea. Por lo tanto, una ventana emergente de notificación sería útil. Entonces, ¿puedo hacerlo mejor?

while; do
  if ping -c 1 your.host.com; expr $? = 0; then
     notify-send "your.host.com back online"; sleep 30s;
  else
     sleep 30s;
  fi;
done

Necesitará zsh y libnotify para que el fragmento funcione. Como guión:

#!/usr/bin/env zsh
while; do if ping -c 1 $1; expr $? = 0; then notify-send "$1 back online"; sleep 30s; else sleep 30s; fi; done

Sugerencia de refactorización rápida: conviértala en una función que acepte el nombre de host / dirección IP como argumento.
vtest

Respuestas:


3

La idea me parece correcta. Al usarlo while :; do ...puede hacerlo portátil a los depósitos Bourne normales. Las exprllamadas parecen innecesarias. Además, es probable que desee salir del ciclo cuando se encuentra el host.

while :; do
    if ping -c 1 $1; then
        notify-send "$1 back online"
        break
    fi
    sleep 30s
done
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.