2

Например, система: Ubuntu/Debian.

Поскольку многие из вас делают это, вероятно, с помощью ping и терминала, я всегда забываю этот терминал при переключении на другую задачу. Так что всплывающее уведомление будет полезно. Так что я могу сделать лучше, как это?

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

Вам понадобятся zsh и libnotify, чтобы позволить фрагменту кода работать. Как скрипт:

#!/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

1 ответ1

3

Идея выглядит правильно для меня. Используя while :; do ... ты можешь сделать его переносимым на обычные оболочки Борна. Вызовы expr кажутся ненужными. Кроме того, вы, вероятно, хотите выйти из цикла, когда хост найден.

while :; do
    if ping -c 1 $1; then
        notify-send "$1 back online"
        break
    fi
    sleep 30s
done

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .