【发布时间】:2011-02-03 02:01:59
【问题描述】:
我正在尝试在 bash 中下载带有 curl 的 html 文件。喜欢这个网站: http://www.registrar.ucla.edu/schedule/detselect.aspx?termsel=10S&subareasel=PHYSICS&idxcrs=0001B+++
当我手动下载它时,它工作正常。但是,当我尝试通过 crontab 运行我的脚本时,输出的 html 文件非常小,只显示“对象已移至此处”。链接断开。这是否与 crontab 命令运行的稀疏环境有关?我发现了这个问题:
php ssl curl : object moved error
但我使用的是 bash,而不是 php。要设置哪些等效的命令行选项或变量来解决 bash 中的此问题?
(我想使用 curl,而不是 wget)
编辑:嗯,有时手动下载文件(通过交互式 shell)可以工作,但有时不能(我仍然收到“对象已移至此处”消息)。因此,这可能不是 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
编辑:问题已解决。问题是网址中的杂散标签。这是因为我正在使用 sed s,"<URL>",\""$url"\", template.txt > test.sh 来生成脚本,并且 sed 用正则表达式 <URL> 替换了 & 的所有实例。修复 url 后,curl 工作正常。
【问题讨论】:
标签: html bash curl download dynamic-url