나는 bash에서 curl로 html 파일을 다운로드하려고합니다. 이 사이트처럼 : http://www.registrar.ucla.edu/schedule/detselect.aspx?termsel=10S&subareasel=PHYSICS&idxcrs=0001B+++curl : 동적 URL에서 다운로드
수동으로 다운로드하면 정상적으로 작동합니다. 그러나, 나는 crontab을 통해 스크립트를 실행하려고 할 때 출력 HTML 파일이 매우 작으며 "Object moved to this"라고 말합니다. 깨진 링크가 있습니다. 이것은 crontab 명령이 실행하는 희소 한 환경과 관련이 있습니까? 나는이 질문에 발견
php ssl curl : object moved error
을하지만 난, PHP는 bash는하지 사용하고 있습니다. bash에서이 문제를 해결하기 위해 설정할 수있는 동일한 명령 행 옵션이나 변수는 무엇입니까?
(I wget을하지, 컬이 작업을 수행 할)
편집 : 물론, 때때로 (대화 형 쉘을 통해) 수동으로 파일 작동을 다운로드하지만, 가끔은 (난 아직도하지 않는 것은 "이동 된 개체 여기 "메시지). 따라서 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을 수정 한 후 말풍선이 잘 작동합니다.
-L 옵션을 사용하면 도움이되지만 해결되지 않습니다. "Object moved here"메시지가 없지만 다운로드 한 페이지에는 원하는 페이지 대신 "시스템을 현재 사용할 수 없거나 오프라인 상태입니다."라는 오류 메시지가 있습니다. – anoda9
예, 동일한 URL로 테스트했습니다. .bashrc 파일이 없습니다. 환경 스크립트를 소싱하면 도움이 될지 모르겠지만 .. – anoda9
좋은 캐치, 다소 다릅니다.나는 sed를 사용하여 url을 스크립트로 대체했으며 대체 필드에서 '&'문자의 동작을 알지 못했습니다. 감사. – anoda9