2011-09-22 112 views
1

我在一個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

+0

你得到的錯誤是什麼?這很可能需要chmod文件(允許執行文件) –

+0

錯誤究竟是什麼?您可以檢查郵件('mail'或'mutt')並​​查看錯誤消息 –

回答

0

OK簡單的事情先 -

  1. 我認爲該文件開始#!/bin/bash什麼
  2. 你有chmod DED文件+x
  3. 您使用的UNIX 0x0d行結尾

你不希望將任何變量返回給調用shell,我想?

如果沒有將每個命令的輸出結果寫入日誌文件,

+0

shell腳本由PHP生成並具有CRLF行尾。我剝掉了回車,一切都很好。謝謝! – brandon

0

從理論上講,從手動執行這些並使用腳本將是時間的唯一區別。

嘗試在最後一個命令前插入一個sleep 5左右。也許http服務器進行一些內部通信,這需要一段時間。很難說,因爲你沒有發佈你得到的錯誤。