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

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

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

Спасибо

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

32 ответа

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

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

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

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

Сценарий, который вы ищете, выглядит следующим образом

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

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

1
ответ дан 25 July 2018 в 21:41

Сетевой менеджер предоставляет интерфейс DBus, который можно использовать для уведомления при подключении к сети. Это обычно означает, что вы также подключены к Интернету, но я не знаю, есть ли у Network-Manager какие-либо методы для фактического подтверждения этого. Вы можете использовать Network-Manager для получения уведомления при подключении к сети, а затем подтвердить, что у вас есть доступ в Интернет, и если да, сделайте то, что вы хотите.

1
ответ дан 25 July 2018 в 21:41

Как сказал dAnjou, я не думаю, что есть триггер, который вы можете использовать.

Однако, чтобы проверить подключение к Интернету, есть более простой способ, чем использовать завиток. Используйте fping следующим образом, который возвращает 0, если подключен, и 2, если нет. См. Руководство fping для получения дополнительной информации.

fping -q example.com

(Использование example.com является допустимым, поскольку имя домена существует, хотя оно зарезервировано для тестирования.)

Упрощение примера Davidc становится :

fping -q example.com && firefox
0
ответ дан 25 July 2018 в 21:41

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

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

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

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

Сценарий, который вы ищете, выглядит следующим образом

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

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

1
ответ дан 31 July 2018 в 12:55

Сетевой менеджер предоставляет интерфейс DBus, который можно использовать для уведомления при подключении к сети. Это обычно означает, что вы также подключены к Интернету, но я не знаю, есть ли у Network-Manager какие-либо методы для фактического подтверждения этого. Вы можете использовать Network-Manager для получения уведомления при подключении к сети, а затем подтвердить, что у вас есть доступ в Интернет, и если да, сделайте то, что вы хотите.

1
ответ дан 31 July 2018 в 12:55

Как сказал dAnjou, я не думаю, что есть триггер, который вы можете использовать.

Однако, чтобы проверить подключение к Интернету, есть более простой способ, чем использовать завиток. Используйте fping следующим образом, который возвращает 0, если подключен, и 2, если нет. См. Руководство fping для получения дополнительной информации.

fping -q example.com

(Использование example.com является допустимым, поскольку имя домена существует, хотя оно зарезервировано для тестирования.)

Упрощение примера Davidc становится :

fping -q example.com && firefox
0
ответ дан 31 July 2018 в 12:55

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

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

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

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

Сценарий, который вы ищете, выглядит следующим образом

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

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

1
ответ дан 2 August 2018 в 03:17

Сетевой менеджер предоставляет интерфейс DBus, который можно использовать для уведомления при подключении к сети. Это обычно означает, что вы также подключены к Интернету, но я не знаю, есть ли у Network-Manager какие-либо методы для фактического подтверждения этого. Вы можете использовать Network-Manager для получения уведомления при подключении к сети, а затем подтвердить, что у вас есть доступ в Интернет, и если да, сделайте то, что вы хотите.

1
ответ дан 2 August 2018 в 03:17

Как сказал dAnjou, я не думаю, что есть триггер, который вы можете использовать.

Однако, чтобы проверить подключение к Интернету, есть более простой способ, чем использовать завиток. Используйте fping следующим образом, который возвращает 0, если подключен, и 2, если нет. См. Руководство fping для получения дополнительной информации.

fping -q example.com

(Использование example.com является допустимым, поскольку имя домена существует, хотя оно зарезервировано для тестирования.)

Упрощение примера Davidc становится :

fping -q example.com && firefox
0
ответ дан 2 August 2018 в 03:17

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

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

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

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

Сценарий, который вы ищете, выглядит следующим образом

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

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

1
ответ дан 4 August 2018 в 19:12

Сетевой менеджер предоставляет интерфейс DBus, который можно использовать для уведомления при подключении к сети. Это обычно означает, что вы также подключены к Интернету, но я не знаю, есть ли у Network-Manager какие-либо методы для фактического подтверждения этого. Вы можете использовать Network-Manager для получения уведомления при подключении к сети, а затем подтвердить, что у вас есть доступ в Интернет, и если да, сделайте то, что вы хотите.

1
ответ дан 4 August 2018 в 19:12

Как сказал dAnjou, я не думаю, что есть триггер, который вы можете использовать.

Однако, чтобы проверить подключение к Интернету, есть более простой способ, чем использовать завиток. Используйте fping следующим образом, который возвращает 0, если подключен, и 2, если нет. См. Руководство fping для получения дополнительной информации.

fping -q example.com

(Использование example.com является допустимым, поскольку имя домена существует, хотя оно зарезервировано для тестирования.)

Упрощение примера Davidc становится :

fping -q example.com && firefox
0
ответ дан 4 August 2018 в 19:12

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

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

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

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

Сценарий, который вы ищете, выглядит следующим образом

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

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

1
ответ дан 6 August 2018 в 03:28

Сетевой менеджер предоставляет интерфейс DBus, который можно использовать для уведомления при подключении к сети. Это обычно означает, что вы также подключены к Интернету, но я не знаю, есть ли у Network-Manager какие-либо методы для фактического подтверждения этого. Вы можете использовать Network-Manager для получения уведомления при подключении к сети, а затем подтвердить, что у вас есть доступ в Интернет, и если да, сделайте то, что вы хотите.

1
ответ дан 6 August 2018 в 03:28

Как сказал dAnjou, я не думаю, что есть триггер, который вы можете использовать.

Однако, чтобы проверить подключение к Интернету, есть более простой способ, чем использовать завиток. Используйте fping следующим образом, который возвращает 0, если подключен, и 2, если нет. См. Руководство fping для получения дополнительной информации.

fping -q example.com

(Использование example.com является допустимым, поскольку имя домена существует, хотя оно зарезервировано для тестирования.)

Упрощение примера Davidc становится :

fping -q example.com && firefox
0
ответ дан 6 August 2018 в 03:28

Как сказал dAnjou, я не думаю, что есть триггер, который вы можете использовать.

Однако, чтобы проверить подключение к Интернету, есть более простой способ, чем использовать завиток. Используйте fping следующим образом, который возвращает 0, если подключен, и 2, если нет. См. Руководство fping для получения дополнительной информации.

  fping -q example.com  

(Использование example.com действительно, поскольку имя домена существует, хотя оно зарезервировано для тестирования.)

Упрощение примера Davidc становится:

  fping -q example.com & amp; & amp; & amp; & amp; & amp;  firefox  
0
ответ дан 7 August 2018 в 21:16

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

  [-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
ответ дан 7 August 2018 в 21:16

Сетевой менеджер предоставляет интерфейс DBus, который можно использовать для уведомления при подключении к сети. Это обычно означает, что вы также подключены к Интернету, но я не знаю, есть ли у Network-Manager какие-либо методы для фактического подтверждения этого. Вы можете использовать Network-Manager для получения уведомления при подключении к сети, а затем подтвердить, что у вас есть доступ в Интернет, и если да, сделайте то, что вы хотите.

1
ответ дан 7 August 2018 в 21:16

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

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

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

2
ответ дан 7 August 2018 в 21:16

Как сказал dAnjou, я не думаю, что есть триггер, который вы можете использовать.

Однако, чтобы проверить подключение к Интернету, есть более простой способ, чем использовать завиток. Используйте fping следующим образом, который возвращает 0, если подключен, и 2, если нет. См. Руководство fping для получения дополнительной информации.

  fping -q example.com  

(Использование example.com действительно, поскольку имя домена существует, хотя оно зарезервировано для тестирования.)

Упрощение примера Davidc становится:

  fping -q example.com & amp; & amp; & amp; & amp; & amp;  firefox  
0
ответ дан 10 August 2018 в 09:34

Сетевой менеджер предоставляет интерфейс DBus, который можно использовать для уведомления при подключении к сети. Это обычно означает, что вы также подключены к Интернету, но я не знаю, есть ли у Network-Manager какие-либо методы для фактического подтверждения этого. Вы можете использовать Network-Manager для получения уведомления при подключении к сети, а затем подтвердить, что у вас есть доступ в Интернет, и если да, сделайте то, что вы хотите.

1
ответ дан 10 August 2018 в 09:34

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

  [-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
ответ дан 10 August 2018 в 09:34

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

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

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

2
ответ дан 10 August 2018 в 09:34

Как сказал dAnjou, я не думаю, что есть триггер, который вы можете использовать.

Однако, чтобы проверить подключение к Интернету, есть более простой способ, чем использовать завиток. Используйте fping следующим образом, который возвращает 0, если подключен, и 2, если нет. См. Руководство fping для получения дополнительной информации.

  fping -q example.com  

(Использование example.com действительно, поскольку имя домена существует, хотя оно зарезервировано для тестирования.)

Упрощение примера Davidc становится:

  fping -q example.com & amp; & amp; & amp; & amp; & amp;  firefox  
0
ответ дан 13 August 2018 в 15:44

Сетевой менеджер предоставляет интерфейс DBus, который можно использовать для уведомления при подключении к сети. Это обычно означает, что вы также подключены к Интернету, но я не знаю, есть ли у Network-Manager какие-либо методы для фактического подтверждения этого. Вы можете использовать Network-Manager для получения уведомления при подключении к сети, а затем подтвердить, что у вас есть доступ в Интернет, и если да, сделайте то, что вы хотите.

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

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

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