我想下载一个HTML文件在bash卷曲。像这样的网站: http://www.registrar.ucla.edu/时间表/ detselect.aspx?TERMSEL = 10S&subareasel =物理及idxcrs = 0001B +++

当我手动下载它,它工作正常。然而,当我尝试通过运行crontab我的脚本,输出HTML文件非常小,只是说“对象转移到这里。”有断链。这是否有东西做的稀疏环境crontab命令的运行呢?我发现这个问题:

PHP SSL卷曲:对象移动误差

但我使用bash,不是PHP。什么是等效的命令行选项或变量设置为修复在bash这个问题呢?

(我想与卷曲做到这一点,不wget的)

编辑:好,有时手动下载文件(通过交互shell)的作品,但有时它不会(我仍然得到“对象搬到这里”消息)。因此,它可能不是一个特别是通过计划的环境问题,但卷曲本身。

的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--location选项,这是继300个系列重定向。 --maxredirs [n]将限制卷曲n重定向。

其奇怪的是,从一个交互式壳这个作品。你取相同的网址是什么?你总是可以尝试在你的cron项采购环境脚本:

* * * * * . /home/you/.bashrc ; curl -L --maxredirs 5 ...

修改的示例网址超过了一个在脚本中有所不同。 $url在脚本中有一个附加的对<URL>标签。与&更换他们,GET请求常规参数分隔符,为我工作。

其他提示

没有看到你的脚本很难猜测到底是怎么回事,但很可能是它,你猜测是一个环境问题。

有一件事情,经常帮助是指定在脚本的完整路径的可执行文件和文件。

如果你显示你的脚本和crontab条目,我们可以有更多的帮助。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top