Скрипт оболочки для CRON, который вызывает URL и сохраняет файл

Скрипт оболочки для CRON, который вызывает URL и сохраняет файл

Вручную я ввожу URL в браузере, который вызывает страницу, имеющую функцию GET, которая напрямую предлагает мне сохранить файл. Я хотел бы автоматизировать с помощью задания cron в скрипте эти действия:

  • Позвоните по URL-адресу
  • Сохраните файл в определенной папке.

Кто-нибудь может помочь написать скрипт? Могу предоставить URL в частном порядке, чтобы протестировать поведение.

решение1

Один из способов загрузить URL-адрес без использования пользовательского интерфейса (текстового или графического) — это использовать его wgetсо всеми необходимыми параметрами (по вашему желанию) в качестве задания cron.

О wget

Пример для одного URL (с выходным именем, объединенным с временной меткой, для обогащения ответа может быть статическим именем):

 wget URL -O "/home/uname/dirn/`date +%y%m%d-%H%M%S`-n.htm" -b
 wget URL -O "/home/uname/dirn/`date +\%y\%m\%d-\%H\%M\%S`-n.htm" -b #in crontab

Примечание: в cron вам необходимо использовать «\%» (как во второй строке выше) вместо просто «%» (как в первой строке выше), поскольку cron интерпретирует символ «процент».

где: распадается на:-O "/home..../date...-theRestOfTheName"

  • абсолютный путь (cron может иметь свой собственный настроенный путь, поэтому с практической точки зрения часто бывает выгоднее указывать интересующий вас путь в каждой команде)

  • выполнение на лету dateс выводом, настроенным как человекочитаемый вид временной метки

  • остальная часть имени целевого файла

-bпросит wget работать в фоновом режиме, с регистрацией в syslog.

При желании вы можете использовать список URL-адресов из файла ( -i filename). Вы также можете поиграться с wget и его страницей руководства ( man wget) — она относительно короткая и может дать вам массу идей.

О хроне

Обратите внимание, cron предполагает, что ваш компьютер включен все время: cron не догоняет задания за то время, когда компьютер был выключен. Редактирование cron от имени текущего пользователя

crontab -e

Добавьте строку конфигурации, которая определяет частоту выполнения команды (простая инструкция отображается как комментарий в самых верхних строках редактора crontab, пожалуйста, прочтите ее). Для запуска каждые 5 минут в воскресенье вы должны написать:

# m  h  dom mon dow   command
*/5  *   *   *   0    wget google.com -O "/home/uname/dirn/`date +\%y\%m\%d-\%H\%M\%S`-ind3.htm" -b

Связанный контент