Интересно, как я могу заставить машину что-то делать каждый раз, когда она подключается к интернету?
как проверка обновлений после подключения к интернету?
Спасибо
Нет абсолютно никакого индикатора, показывающего, есть ли у вас интернет-соединение или нет. Это связано с тем, что вы всегда подключаетесь к каким-то шлюзам (маршрутизатор, модем, ...), который устанавливает соединение с вашим интернет-провайдером. Поэтому, чтобы быть уверенным, что вы в сети или нет, вам нужно проверить соединение самостоятельно, выполнив ping или создав HTTP-соединение (например, используя curl) и проверив результат. Но будьте осторожны: ответ ping не означает, что вы можете иметь HTTP-соединение. И получение ответа HTTP не означает, что вы можете просматривать веб-страницы. Вы всегда должны проверять ответ.
Вы можете быть уверены, что имеете интернет-соединение, если знаете ожидаемый ответ. Например, вы можете анализировать такие сайты, как http://www.whatismyip.de/, для IP-адреса, используя регулярные выражения. Если ваше регулярное выражение правильное и оно не находит IP-адрес, тогда у вас нет подключения к Интернету.
Краткий ответ: напишите сценарий, в котором вы проверяете подключение к Интернету (как описано выше). При успешном выполнении вы выполняете нужные команды и устанавливаете флаг, который вы делаете на сегодняшний день (просто создайте файл и проверьте наличие), при неудаче вы ничего не делаете. Сделайте этот скрипт cronjob.
Сценарий, который вы ищете, выглядит следующим образом
[ -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».
Сетевой менеджер предоставляет интерфейс DBus, который можно использовать для уведомления при подключении к сети. Это обычно означает, что вы также подключены к Интернету, но я не знаю, есть ли у Network-Manager какие-либо методы для фактического подтверждения этого. Вы можете использовать Network-Manager для получения уведомления при подключении к сети, а затем подтвердить, что у вас есть доступ в Интернет, и если да, сделайте то, что вы хотите.
Как сказал dAnjou, я не думаю, что есть триггер, который вы можете использовать.
Однако, чтобы проверить подключение к Интернету, есть более простой способ, чем использовать завиток. Используйте fping следующим образом, который возвращает 0, если подключен, и 2, если нет. См. Руководство fping для получения дополнительной информации.
fping -q example.com
(Использование example.com является допустимым, поскольку имя домена существует, хотя оно зарезервировано для тестирования.)
Упрощение примера Davidc становится :
fping -q example.com && firefox
Нет абсолютно никакого индикатора, показывающего, есть ли у вас интернет-соединение или нет. Это связано с тем, что вы всегда подключаетесь к каким-то шлюзам (маршрутизатор, модем, ...), который устанавливает соединение с вашим интернет-провайдером. Поэтому, чтобы быть уверенным, что вы в сети или нет, вам нужно проверить соединение самостоятельно, выполнив ping или создав HTTP-соединение (например, используя curl) и проверив результат. Но будьте осторожны: ответ ping не означает, что вы можете иметь HTTP-соединение. И получение ответа HTTP не означает, что вы можете просматривать веб-страницы. Вы всегда должны проверять ответ.
Вы можете быть уверены, что имеете интернет-соединение, если знаете ожидаемый ответ. Например, вы можете анализировать такие сайты, как http://www.whatismyip.de/, для IP-адреса, используя регулярные выражения. Если ваше регулярное выражение правильное и оно не находит IP-адрес, тогда у вас нет подключения к Интернету.
Краткий ответ: напишите сценарий, в котором вы проверяете подключение к Интернету (как описано выше). При успешном выполнении вы выполняете нужные команды и устанавливаете флаг, который вы делаете на сегодняшний день (просто создайте файл и проверьте наличие), при неудаче вы ничего не делаете. Сделайте этот скрипт cronjob.
Сценарий, который вы ищете, выглядит следующим образом
[ -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».
Сетевой менеджер предоставляет интерфейс DBus, который можно использовать для уведомления при подключении к сети. Это обычно означает, что вы также подключены к Интернету, но я не знаю, есть ли у Network-Manager какие-либо методы для фактического подтверждения этого. Вы можете использовать Network-Manager для получения уведомления при подключении к сети, а затем подтвердить, что у вас есть доступ в Интернет, и если да, сделайте то, что вы хотите.
Как сказал dAnjou, я не думаю, что есть триггер, который вы можете использовать.
Однако, чтобы проверить подключение к Интернету, есть более простой способ, чем использовать завиток. Используйте fping следующим образом, который возвращает 0, если подключен, и 2, если нет. См. Руководство fping для получения дополнительной информации.
fping -q example.com
(Использование example.com является допустимым, поскольку имя домена существует, хотя оно зарезервировано для тестирования.)
Упрощение примера Davidc становится :
fping -q example.com && firefox
Нет абсолютно никакого индикатора, показывающего, есть ли у вас интернет-соединение или нет. Это связано с тем, что вы всегда подключаетесь к каким-то шлюзам (маршрутизатор, модем, ...), который устанавливает соединение с вашим интернет-провайдером. Поэтому, чтобы быть уверенным, что вы в сети или нет, вам нужно проверить соединение самостоятельно, выполнив ping или создав HTTP-соединение (например, используя curl) и проверив результат. Но будьте осторожны: ответ ping не означает, что вы можете иметь HTTP-соединение. И получение ответа HTTP не означает, что вы можете просматривать веб-страницы. Вы всегда должны проверять ответ.
Вы можете быть уверены, что имеете интернет-соединение, если знаете ожидаемый ответ. Например, вы можете анализировать такие сайты, как http://www.whatismyip.de/, для IP-адреса, используя регулярные выражения. Если ваше регулярное выражение правильное и оно не находит IP-адрес, тогда у вас нет подключения к Интернету.
Краткий ответ: напишите сценарий, в котором вы проверяете подключение к Интернету (как описано выше). При успешном выполнении вы выполняете нужные команды и устанавливаете флаг, который вы делаете на сегодняшний день (просто создайте файл и проверьте наличие), при неудаче вы ничего не делаете. Сделайте этот скрипт cronjob.
Сценарий, который вы ищете, выглядит следующим образом
[ -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».
Сетевой менеджер предоставляет интерфейс DBus, который можно использовать для уведомления при подключении к сети. Это обычно означает, что вы также подключены к Интернету, но я не знаю, есть ли у Network-Manager какие-либо методы для фактического подтверждения этого. Вы можете использовать Network-Manager для получения уведомления при подключении к сети, а затем подтвердить, что у вас есть доступ в Интернет, и если да, сделайте то, что вы хотите.
Как сказал dAnjou, я не думаю, что есть триггер, который вы можете использовать.
Однако, чтобы проверить подключение к Интернету, есть более простой способ, чем использовать завиток. Используйте fping следующим образом, который возвращает 0, если подключен, и 2, если нет. См. Руководство fping для получения дополнительной информации.
fping -q example.com
(Использование example.com является допустимым, поскольку имя домена существует, хотя оно зарезервировано для тестирования.)
Упрощение примера Davidc становится :
fping -q example.com && firefox
Нет абсолютно никакого индикатора, показывающего, есть ли у вас интернет-соединение или нет. Это связано с тем, что вы всегда подключаетесь к каким-то шлюзам (маршрутизатор, модем, ...), который устанавливает соединение с вашим интернет-провайдером. Поэтому, чтобы быть уверенным, что вы в сети или нет, вам нужно проверить соединение самостоятельно, выполнив ping или создав HTTP-соединение (например, используя curl) и проверив результат. Но будьте осторожны: ответ ping не означает, что вы можете иметь HTTP-соединение. И получение ответа HTTP не означает, что вы можете просматривать веб-страницы. Вы всегда должны проверять ответ.
Вы можете быть уверены, что имеете интернет-соединение, если знаете ожидаемый ответ. Например, вы можете анализировать такие сайты, как http://www.whatismyip.de/, для IP-адреса, используя регулярные выражения. Если ваше регулярное выражение правильное и оно не находит IP-адрес, тогда у вас нет подключения к Интернету.
Краткий ответ: напишите сценарий, в котором вы проверяете подключение к Интернету (как описано выше). При успешном выполнении вы выполняете нужные команды и устанавливаете флаг, который вы делаете на сегодняшний день (просто создайте файл и проверьте наличие), при неудаче вы ничего не делаете. Сделайте этот скрипт cronjob.
Сценарий, который вы ищете, выглядит следующим образом
[ -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».
Сетевой менеджер предоставляет интерфейс DBus, который можно использовать для уведомления при подключении к сети. Это обычно означает, что вы также подключены к Интернету, но я не знаю, есть ли у Network-Manager какие-либо методы для фактического подтверждения этого. Вы можете использовать Network-Manager для получения уведомления при подключении к сети, а затем подтвердить, что у вас есть доступ в Интернет, и если да, сделайте то, что вы хотите.
Как сказал dAnjou, я не думаю, что есть триггер, который вы можете использовать.
Однако, чтобы проверить подключение к Интернету, есть более простой способ, чем использовать завиток. Используйте fping следующим образом, который возвращает 0, если подключен, и 2, если нет. См. Руководство fping для получения дополнительной информации.
fping -q example.com
(Использование example.com является допустимым, поскольку имя домена существует, хотя оно зарезервировано для тестирования.)
Упрощение примера Davidc становится :
fping -q example.com && firefox
Нет абсолютно никакого индикатора, показывающего, есть ли у вас интернет-соединение или нет. Это связано с тем, что вы всегда подключаетесь к каким-то шлюзам (маршрутизатор, модем, ...), который устанавливает соединение с вашим интернет-провайдером. Поэтому, чтобы быть уверенным, что вы в сети или нет, вам нужно проверить соединение самостоятельно, выполнив ping или создав HTTP-соединение (например, используя curl) и проверив результат. Но будьте осторожны: ответ ping не означает, что вы можете иметь HTTP-соединение. И получение ответа HTTP не означает, что вы можете просматривать веб-страницы. Вы всегда должны проверять ответ.
Вы можете быть уверены, что имеете интернет-соединение, если знаете ожидаемый ответ. Например, вы можете анализировать такие сайты, как http://www.whatismyip.de/, для IP-адреса, используя регулярные выражения. Если ваше регулярное выражение правильное и оно не находит IP-адрес, тогда у вас нет подключения к Интернету.
Краткий ответ: напишите сценарий, в котором вы проверяете подключение к Интернету (как описано выше). При успешном выполнении вы выполняете нужные команды и устанавливаете флаг, который вы делаете на сегодняшний день (просто создайте файл и проверьте наличие), при неудаче вы ничего не делаете. Сделайте этот скрипт cronjob.
Сценарий, который вы ищете, выглядит следующим образом
[ -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».
Сетевой менеджер предоставляет интерфейс DBus, который можно использовать для уведомления при подключении к сети. Это обычно означает, что вы также подключены к Интернету, но я не знаю, есть ли у Network-Manager какие-либо методы для фактического подтверждения этого. Вы можете использовать Network-Manager для получения уведомления при подключении к сети, а затем подтвердить, что у вас есть доступ в Интернет, и если да, сделайте то, что вы хотите.
Как сказал dAnjou, я не думаю, что есть триггер, который вы можете использовать.
Однако, чтобы проверить подключение к Интернету, есть более простой способ, чем использовать завиток. Используйте fping следующим образом, который возвращает 0, если подключен, и 2, если нет. См. Руководство fping для получения дополнительной информации.
fping -q example.com
(Использование example.com является допустимым, поскольку имя домена существует, хотя оно зарезервировано для тестирования.)
Упрощение примера Davidc становится :
fping -q example.com && firefox
Как сказал dAnjou, я не думаю, что есть триггер, который вы можете использовать.
Однако, чтобы проверить подключение к Интернету, есть более простой способ, чем использовать завиток. Используйте fping следующим образом, который возвращает 0, если подключен, и 2, если нет. См. Руководство fping для получения дополнительной информации.
fping -q example.com
(Использование example.com действительно, поскольку имя домена существует, хотя оно зарезервировано для тестирования.)
Упрощение примера Davidc становится:
fping -q example.com & amp; & amp; & amp; & amp; & amp; firefox
Сценарий, который вы ищете, выглядит так
[-n "$ (curl -s icanhazip.com | grep ^ [0-9])"] & amp; & amp; & amp; & amp; & amp; firefox
Чтобы легко настроить cronjob для запуска его каждые x минут, вы можете установить «gnome-schedule».
Сетевой менеджер предоставляет интерфейс DBus, который можно использовать для уведомления при подключении к сети. Это обычно означает, что вы также подключены к Интернету, но я не знаю, есть ли у Network-Manager какие-либо методы для фактического подтверждения этого. Вы можете использовать Network-Manager для получения уведомления при подключении к сети, а затем подтвердить, что у вас есть доступ в Интернет, и если да, сделайте то, что вы хотите.
Нет абсолютно никакого индикатора, показывающего, есть ли у вас интернет-соединение или нет. Это связано с тем, что вы всегда подключаетесь к каким-то шлюзам (маршрутизатор, модем, ...), который устанавливает соединение с вашим интернет-провайдером. Поэтому, чтобы быть уверенным, что вы в сети или нет, вам нужно проверить соединение самостоятельно, выполнив ping или создав HTTP-соединение (например, используя curl
) и проверив результат. Но будьте осторожны: ответ ping не означает, что вы можете иметь HTTP-соединение. И получение ответа HTTP не означает, что вы можете просматривать веб-страницы. Вы всегда должны проверять ответ.
Вы можете быть уверены, что имеете интернет-соединение, если знаете ожидаемый ответ. Например, вы можете анализировать такие сайты, как http://www.whatismyip.de/ для IP-адреса, используя регулярные выражения. Если ваше регулярное выражение является правильным и оно не находит IP-адрес, тогда у вас нет подключения к Интернету.
Краткий ответ: напишите сценарий, в котором вы проверяете подключение к Интернету (как описано выше). При успешном выполнении вы выполняете нужные команды и устанавливаете флаг, который вы делаете на сегодняшний день (просто создайте файл и проверьте наличие), при неудаче вы ничего не делаете. Сделайте этот скрипт cronjob.
Как сказал dAnjou, я не думаю, что есть триггер, который вы можете использовать.
Однако, чтобы проверить подключение к Интернету, есть более простой способ, чем использовать завиток. Используйте fping следующим образом, который возвращает 0, если подключен, и 2, если нет. См. Руководство fping для получения дополнительной информации.
fping -q example.com
(Использование example.com действительно, поскольку имя домена существует, хотя оно зарезервировано для тестирования.)
Упрощение примера Davidc становится:
fping -q example.com & amp; & amp; & amp; & amp; & amp; firefox
Сетевой менеджер предоставляет интерфейс DBus, который можно использовать для уведомления при подключении к сети. Это обычно означает, что вы также подключены к Интернету, но я не знаю, есть ли у Network-Manager какие-либо методы для фактического подтверждения этого. Вы можете использовать Network-Manager для получения уведомления при подключении к сети, а затем подтвердить, что у вас есть доступ в Интернет, и если да, сделайте то, что вы хотите.
Сценарий, который вы ищете, выглядит так
[-n "$ (curl -s icanhazip.com | grep ^ [0-9])"] & amp; & amp; & amp; & amp; & amp; firefox
Чтобы легко настроить cronjob для запуска его каждые x минут, вы можете установить «gnome-schedule».
Нет абсолютно никакого индикатора, показывающего, есть ли у вас интернет-соединение или нет. Это связано с тем, что вы всегда подключаетесь к каким-то шлюзам (маршрутизатор, модем, ...), который устанавливает соединение с вашим интернет-провайдером. Поэтому, чтобы быть уверенным, что вы в сети или нет, вам нужно проверить соединение самостоятельно, выполнив ping или создав HTTP-соединение (например, используя curl
) и проверив результат. Но будьте осторожны: ответ ping не означает, что вы можете иметь HTTP-соединение. И получение ответа HTTP не означает, что вы можете просматривать веб-страницы. Вы всегда должны проверять ответ.
Вы можете быть уверены, что имеете интернет-соединение, если знаете ожидаемый ответ. Например, вы можете анализировать такие сайты, как http://www.whatismyip.de/ для IP-адреса, используя регулярные выражения. Если ваше регулярное выражение является правильным и оно не находит IP-адрес, тогда у вас нет подключения к Интернету.
Краткий ответ: напишите сценарий, в котором вы проверяете подключение к Интернету (как описано выше). При успешном выполнении вы выполняете нужные команды и устанавливаете флаг, который вы делаете на сегодняшний день (просто создайте файл и проверьте наличие), при неудаче вы ничего не делаете. Сделайте этот скрипт cronjob.
Как сказал dAnjou, я не думаю, что есть триггер, который вы можете использовать.
Однако, чтобы проверить подключение к Интернету, есть более простой способ, чем использовать завиток. Используйте fping следующим образом, который возвращает 0, если подключен, и 2, если нет. См. Руководство fping для получения дополнительной информации.
fping -q example.com
(Использование example.com действительно, поскольку имя домена существует, хотя оно зарезервировано для тестирования.)
Упрощение примера Davidc становится:
fping -q example.com & amp; & amp; & amp; & amp; & amp; firefox
Сетевой менеджер предоставляет интерфейс DBus, который можно использовать для уведомления при подключении к сети. Это обычно означает, что вы также подключены к Интернету, но я не знаю, есть ли у Network-Manager какие-либо методы для фактического подтверждения этого. Вы можете использовать Network-Manager для получения уведомления при подключении к сети, а затем подтвердить, что у вас есть доступ в Интернет, и если да, сделайте то, что вы хотите.