Я пытаюсь сделать что-то, что будет записывать мой публичный IP-адрес в базу данных каждые несколько минут.
Я уже разработал веб-страницу, которая записывает IP-адрес посетителя при каждой загрузке.
Я хотел бы настроить задание cron, которое будет периодически загружать страницу в фоновом режиме. Я знаю, как настроить задание cron, но не знаю, как загрузить веб-страницу в фоновом режиме из командной строки.
Как бы вы это сделали?
решение1
Предположительно, страница была разработана таким образом, что пользовательский агент не обязательно должен быть браузером. Если это так, вы можете просто использовать команду curl
для извлечения страницы.
Если вы запускаете его как задание cron, вы не хотите, чтобы команда выводила какой-либо вывод. Для этого используйте опцию --silent
curl и отклоните ответ HTTP, перенаправив вывод на /dev/null
. Например, добавьте следующее задание cron для извлечения страницы каждые 10 минут:
*/10 * * * * curl --silent http://example.com/path/to/page curl >/dev/null
Если вы хотите быть более эффективными, вы можете разработать свою веб-страницу так, чтобы она отвечала на HTTP- HEAD
запросы, а также GET
на запросы. Таким образом, вы можете использовать curl -I
так, чтобы между сервером и клиентом отправлялись только HTTP-заголовки.
решение2
- Выберите язык программирования — Ruby, Python, Java или C#
- Напишите экземпляр selenium webdriver, например
driver = Selenium::WebDriver.for :firefox
- Напишите команду для посещения URL, например (Ruby)
driver.get "http://www.google.com"
- Подумайте, будет ли прямой GET лучше, чем использование браузера
Более подробная информация наhttp://www.seleniumhq.org/docs/03_webdriver.jsp#настройка-проекта-selenium-webdriver