Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Обработка команд ping с двух и более адресов  (Прочитано 1258 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн chester_+1

  • Автор темы
  • Новичок
  • *
  • Сообщений: 26
    • Просмотр профиля
Третья по счету тема, в двух предыдущих разобрался (первая, вторая).
Кому интересно, речь о контроле за работой kTorrent из терминала или завязка на крон. Скрипт под спойлером:

(Нажмите, чтобы показать/скрыть)


Теперь возникла необходимость объединить команды так, чтобы одна не перекрывала другую.

if eval "ping -c 1 192.168.1.4>/dev/null" ; then kt stop ; else kt start ;fi;if eval "ping -c 1 192.168.1.6>/dev/null" ; then kt stop ; else kt start ;fi;if eval "ping -c 1 192.168.1.7>/dev/null" ; then kt stop ; else kt start ;fi;
Надеюсь на вашу помощь :)
« Последнее редактирование: 29 Октябрь 2011, 18:45:51 от chester_+1 »

Оффлайн RustemNur

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 2939
  • умрешь с вами
    • Просмотр профиля
Re: Обработка команд ping с двух и более адресов
« Ответ #1 : 29 Октябрь 2011, 20:18:31 »
Поясните насчет перекрытия

Оффлайн chester_+1

  • Автор темы
  • Новичок
  • *
  • Сообщений: 26
    • Просмотр профиля
Re: Обработка команд ping с двух и более адресов
« Ответ #2 : 29 Октябрь 2011, 22:57:08 »
Все три команды отличаются только адресом, так если 192.168.1.6 (ноут) и 192.168.1.4 (десктоп) пингуются, то при отключении ноута произойдет срабатывание команды запуска торрентов, выходит резонанс команд.

Возможно, скрипт должен идти цепочкой:
нет пинга 192.168.1.6 - переходим к 192.168.1.4 - далее 192.168.1.7 - выполняется команда
если один из компьютеров цепочки пингуется - цепочка завершается и выполняется "kt stop" / "kt start"

Оффлайн RustemNur

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 2939
  • умрешь с вами
    • Просмотр профиля
Re: Обработка команд ping с двух и более адресов
« Ответ #3 : 29 Октябрь 2011, 23:35:17 »
Условный оператор (и логические операции) вам в помощь :)
Читайте (лучше вообще все с самого начала).

Оффлайн chester_+1

  • Автор темы
  • Новичок
  • *
  • Сообщений: 26
    • Просмотр профиля
Re: Обработка команд ping с двух и более адресов
« Ответ #4 : 31 Октябрь 2011, 14:53:48 »
RustemNur
Вот, составил скрипт по приведенному Вами мануалу. В виртуалке сделал несколько прогонов, для проверки выводил служебные сообщения, вроде работает. Ни в чем не ошибся?

#!/bin/bash
if eval "ping -c 1 192.168.1.6>/dev/null"
then
notify-send -t 5000 "#1"
elif eval "ping -c 1 192.168.1.7>/dev/null"
then
notify-send -t 5000 "#2"
elif eval "ping -c 1 192.168.1.4>/dev/null"
then
notify-send -t 5000 "#3"
else
notify-send -t 5000 "#4"
fi
« Последнее редактирование: 31 Октябрь 2011, 14:55:25 от chester_+1 »

 

Страница сгенерирована за 0.089 секунд. Запросов: 23.