我在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上运行
答案 0 :(得分:0)
理论上,手动执行这些和使用脚本的唯一区别就是时间。
尝试在最后一个命令之前插入sleep 5
左右。也许http服务器进行一些内部通信,这需要一段时间。很难说,因为你没有发布你得到的错误。
答案 1 :(得分:0)
首先确定简单的事情 -
#!/bin/bash
或其他chmod
ded文件+x
0x0d
行结尾并且你不希望将任何变量返回到调用shell,我猜想?
如果未通过此尝试tee
将每个命令的输出发送到日志文件。