shell脚本wget在用作cron作业时不起作用

时间:2011-09-22 19:46:05

标签: linux bash shell cron wget

我在php web应用程序中有一个函数需要定期调用cron作业。最初我只是做了一个简单的wget到url调用函数,一切正常,但自从我们添加用户身份验证后,我无法让它工作。

如果我手动执行这些命令,我​​可以登录,获取cookie然后访问正确的URL:

site=http://some.site/login/in/here
cookie=`wget --post-data 'username=testuser&password=testpassword' $site -q -S -O /dev/null 2>&1 | awk '/Set-Cookie/{print $2}' | awk 'NR==2{print}'`
wget -O /dev/null --header="Cookie: $cookie" http://some.site/call/this/function

但是当作为脚本执行时,无论是手动还是通过cron,它都不起作用。

我是shell脚本的新手,任何帮助都将不胜感激

这是在ubuntu服务器10.04上运行

2 个答案:

答案 0 :(得分:0)

理论上,手动执行这些和使用脚本的唯一区别就是时间。

尝试在最后一个命令之前插入sleep 5左右。也许http服务器进行一些内部通信,这需要一段时间。很难说,因为你没有发布你得到的错误。

答案 1 :(得分:0)

首先确定简单的事情 -

  1. 我假设文件以#!/bin/bash或其他
  2. 开头
  3. 您有chmod ded文件+x
  4. 您正在使用unix 0x0d行结尾
  5. 并且你不希望将任何变量返回到调用shell,我猜想?

    如果未通过此尝试tee将每个命令的输出发送到日志文件。