Я пытаюсь загрузить html-файл с помощью curl в bash. Нравится этот сайт: http://www.registrar.ucla.edu/schedule/detselect.aspx?termsel=10S&subareasel=PHYSICS&idxcrs=0001B+++
Когда скачиваю вручную, работает нормально. Однако, когда я пытаюсь запустить свой скрипт через crontab, выходной html-файл очень мал и просто говорит: «Объект перемещен сюда». с неработающей ссылкой. Связано ли это с разреженной средой, которую запускают команды crontab? Я нашел такой вопрос:
php ssl curl: ошибка перемещения объекта
но я использую bash, а не php. Какие эквивалентные параметры или переменные командной строки необходимо установить для решения этой проблемы в bash?
(Я хочу сделать это с помощью curl, а не wget)
Изменить: ну, иногда загрузка файла вручную (через интерактивную оболочку) работает, но иногда нет (я все еще получаю сообщение «Объект перемещен сюда»). Так что проблема может быть не в среде cron, а в самом curl.
запись cron: * * * * * ~/.class/test.sh >> ~/.class/test_out 2>&1
test.sh:
#! /bin/bash
PATH=/usr/local/bin:/usr/bin:/bin:/sbin
cd ~/.class
course="physics 1b"
url="http://www.registrar.ucla.edu/schedule/detselect.aspx?termsel=10S<URL>subareasel=PHYSICS<URL>idxcrs=0001B+++"
curl "$url" -sLo "$course".html --max-redirs 5
Изменить: проблема решена. Проблема заключалась в случайных тегах в URL-адресе. Это произошло потому, что я делал sed s,"<URL>",\""$url"\", template.txt > test.sh
для генерации сценариев, а sed заменил все экземпляры &
регулярным выражением <URL>
. После исправления URL-адреса curl работает нормально.