assaron 06.09.2009 19:43
Tips & tricks — Ожидание появления хоста в сети.
Иногда какой-нибудь комп в локальной сети выключен, а на нем естьчто-нибудь интересное. Или хочется написать пост на WeLinux, а
сервер лежит.
Возникает задача дождаться, пока компьютер появится в сети.Ее
можно решить простым скриптом:
1 |
|
Первым параметром принимается имя хоста, вторым (необязательным) —
команда, выполняемая после появления компьютера.
chemikadze 06.09.2009 20:10 #
+ 0 -
Разъясните синтаксис вычисления значение untill-выражения неразумному.
Весь вывод отправляется в null (>/dev/null), но сообщения об ошибках - на стандартный ввод (2>$1). благодаря этому и получается 1 только если пакет не дошёл.
Давайте все мониторить так, может когда нибудь сайт и поднимется :))
Угу, помню как я в ЛКШ хлипенький комп пингами DDoSил... Золотые были времена =)
я тебя не понимаю
ты про ддос пингом вообще, или конкретно от данного скрипта?
ты про ддос пингом вообще, или конкретно от данного скрипта?
ааа....
но все равно 3 компа и 15 пингов в секунду, имхо, не положит даже пень 200
но все равно 3 компа и 15 пингов в секунду, имхо, не положит даже пень 200
Тогда были древние как черти что, сейчас не знаю. Ложить насмерть не ложило, но атакованная машина тааак тормозила...
это я выпендрился немножко :)
это перенаправление stderr в stdout, чтоб не писать >/dev/null 2>/dev/null
это перенаправление stderr в stdout, чтоб не писать >/dev/null 2>/dev/null
тут был мой коммент, но я его удалил :) напишу снова
означает, что мы перенаправляем стандартный поток вывода(1) в небытие, а поток ошибок(2), туда же куда и поток вывода
менять местами нельзя, потому что разбор параметров идёт слева направо
>/dev/null 2>&1
означает, что мы перенаправляем стандартный поток вывода(1) в небытие, а поток ошибок(2), туда же куда и поток вывода
менять местами нельзя, потому что разбор параметров идёт слева направо
А еще для КДЕшников можно добавить фичу (точно не могу проверить, с работы пишу, нет под рукой КДЕ, но как-то так это работает):
Получим красивую всплывающую подсказку =)
#!/bin/bash
until ping -c 1 -W 1 $1 >/dev/null 2>&1
do
sleep 1
done
kdialog --passivepopup "$1 is on-line" --title "Host is online" 5
$2
Получим красивую всплывающую подсказку =)
а как без цикла пингонуть и вывести "$1 is on-line" в случае удачи?
чето у меня не получается никак, наверно надо лечь по спать)
чето у меня не получается никак, наверно надо лечь по спать)