Как я могу вызвать что-то, когда подключаюсь к Интернету?

Интересно, как я могу заставить машину что-то делать каждый раз, когда она подключается к интернету?

как проверка обновлений после подключения к интернету?

Спасибо

4
задан 22 June 2011 в 12:38

32 ответа

Сценарий, который вы ищете, выглядит так

  [-n "$ (curl -s icanhazip.com | grep ^ [0-9])"] & amp; & amp; & amp; & amp; & amp;  firefox  
  • «curl icanhazip.com» возвращает IP-адрес, если вы в сети
  • «grep ^ [0-9]» проверяет, является ли первый символ представляет собой цифру
  • "[-n" ... "] & amp; & amp;" означает «если это так, переходите к следующей команде (которая в моем примере« firefox »)«
  • Это быстрый взлом, и этот скрипт не будет работать, если icanhazip.com не работает или если у вас есть адрес IPv6.

Чтобы легко настроить cronjob для запуска его каждые x минут, вы можете установить «gnome-schedule».

1
ответ дан 13 August 2018 в 15:44

Нет абсолютно никакого индикатора, показывающего, есть ли у вас интернет-соединение или нет. Это связано с тем, что вы всегда подключаетесь к каким-то шлюзам (маршрутизатор, модем, ...), который устанавливает соединение с вашим интернет-провайдером. Поэтому, чтобы быть уверенным, что вы в сети или нет, вам нужно проверить соединение самостоятельно, выполнив ping или создав HTTP-соединение (например, используя curl ) и проверив результат. Но будьте осторожны: ответ ping не означает, что вы можете иметь HTTP-соединение. И получение ответа HTTP не означает, что вы можете просматривать веб-страницы. Вы всегда должны проверять ответ.

Вы можете быть уверены, что имеете интернет-соединение, если знаете ожидаемый ответ. Например, вы можете анализировать такие сайты, как http://www.whatismyip.de/ для IP-адреса, используя регулярные выражения. Если ваше регулярное выражение является правильным и оно не находит IP-адрес, тогда у вас нет подключения к Интернету.

Краткий ответ: напишите сценарий, в котором вы проверяете подключение к Интернету (как описано выше). При успешном выполнении вы выполняете нужные команды и устанавливаете флаг, который вы делаете на сегодняшний день (просто создайте файл и проверьте наличие), при неудаче вы ничего не делаете. Сделайте этот скрипт cronjob.

2
ответ дан 13 August 2018 в 15:44
  • 1
    Спасибо dAnjou, Но можете ли вы посоветовать мне, как начать .. Каковы основы. Я абсолютно новичок в этом! еще раз спасибо – DeaDSouL 22 June 2011 в 12:34
  • 2
    Ну, одним из основных было бы изучить сценарии оболочки. Для этого есть тонны учебников. Я не могу рекомендовать конкретный. Следующее, что нужно прочитать, - это кроны. См. Ответ Дэвидса. Это хорошее начало, но если вы сделаете это так и настроите cronjob для этого каждые 5 минут, ваша система, вероятно, будет обновляться каждые 5 минут. Я не думаю, что это хорошо. Если вы обновили свою систему, я бы сказал, что вы должны создать файл, подобный этому touch updated_at _ $ (date +% F) , и проверить его в следующий раз перед обновлением. – dAnjou 25 June 2011 в 18:55

Другие вопросы по тегам:

Похожие вопросы: