shell脚本wget在用作cron作业时不工作
问题描述:
我在一个php web应用程序中有一个函数,它需要定期由cron作业调用。最初我只是做了一个简单的wget到网址来调用该函数,一切正常,但自从我们添加用户身份验证我有麻烦得到它的工作。shell脚本wget在用作cron作业时不工作
如果我手动执行这些命令我可以登录,得到的cookie,然后访问正确的网址:
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
答
OK简单的事情先 -
- 我认为该文件开始
#!/bin/bash
什么 - 你有
chmod
DED文件+x
- 您使用的UNIX
0x0d
行结尾
你不希望将任何变量返回给调用shell,我想?
如果没有将每个命令的输出结果写入日志文件,
+0
shell脚本由PHP生成并具有CRLF行尾。我剥掉了回车,一切都很好。谢谢! – brandon
答
从理论上讲,从手动执行这些并使用脚本将是时间的唯一区别。
尝试在最后一个命令前插入一个sleep 5
左右。也许http服务器进行一些内部通信,这需要一段时间。很难说,因为你没有发布你得到的错误。
你得到的错误是什么?这很可能需要chmod文件(允许执行文件) –
错误究竟是什么?您可以检查邮件('mail'或'mutt')并查看错误消息 –