
Вручную я ввожу 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