[英]Running a php script using wget and Windows Scheduler
在我的筆記本電腦上,我已經安裝了網絡服務器並編寫了腳本。 在任何瀏覽器中通過http://localhost/test/search.php
訪問該腳本都可以使其正常運行:它搜索,下載並存儲某些推文。
現在,我想使腳本每20分鍾自動運行一次,因此我在C:\\Program Files\\GnuWin32\\bin\\wget.exe
下載並安裝了Windows的wget
。 然后,我使用以下操作(在“操作”選項卡上填寫)創建了Windows任務:
Program/script:
"C:\Program Files\GnuWin32\bin\wget.exe"
Add arguments (optional): -O - -q -t 1 http://localhost/test/search.php
如預期的那樣,每20分鍾就會打開一個命令行來運行腳本。 但是,什么也沒有發生。 腳本未初始化。 我確信我所有的路徑都是正確的。 是什么原因導致腳本無法執行? 命令行在幾毫秒內消失,所以我看不到它的意思...
您提到了search.php
兩條路徑:一個是/test
,另一個是/ting
。 確保在瀏覽器和wget中使用相同的名稱。
如果您請求的頁面不存在,則提供-q
不會出錯。 將其替換為-v
或--verbose
可以查看出了什么問題。
c:\gnuwin32\bin\wget.exe -O - --verbose -t 1 http://localhost/test/search.php
--2013-02-25 23:42:03-- http://localhost/test/search.php
Resolving localhost... ::1, 127.0.0.1
Connecting to localhost|::1|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2013-02-25 23:42:03 ERROR 404: Not Found.
當命令行正常工作時,您可以專注於使用任務計划程序運行它。
您可以自己或任何其他帳戶運行任務。 即使您已注銷,使用“ LOCAL SERVICE
也可以在不提供密碼的情況下運行它。 只需確保您選擇的帳戶具有wget所在目錄的權限即可。
其他人提到您必須設置計划任務的路徑,否則您將獲得屏幕快照中顯示的操作代碼(2)。 它還將確保Windows找到wget.exe
依賴項,即libeay32.dll
和libssl32.dll
。
。
最后,簡化。 從命令行運行php。 上面的鏈接是一個帶有簡單腳本的示例 。
編寫代碼,以便您可以從命令行獨立調用search.php。 無需在兩者之間放置HTTP客戶端和Web服務器。 這是用於各種Twitter相關操作的一堆示例腳本 。
請創建一個bat文件,在其中提及所有命令,例如Broncha在注釋中提到的命令,然后將其添加到Windows任務計划程序中。
task1.bat
-----------
cd c:\xampp\htdocs\test
php search.php
您應該從命令行測試腳本,以了解腳本是否正常運行。 只需在cmd
上運行此cmd
即可檢查
"C:\Program Files\GnuWin32\bin\wget.exe" -O - -q -t 1 http://localhost/test/search.php
任務計划程序具有許多用於設置的選項卡,請檢查歷史記錄選項卡以查看計划的任務歷史記錄,您可以在其中檢查最后幾個運行時的退出代碼。 在歷史中查找類似事件:
事件ID:201任務類別:操作已完成
action "C:\\Program Files (x86)\\GnuWin32\\bin\\wget.exe" with return code x
檢查其退出代碼action "C:\\Program Files (x86)\\GnuWin32\\bin\\wget.exe" with return code x
。 如果它為零,那么它正在工作,任何其他整數都意味着錯誤。
請告訴您您正在使用哪個窗戶? 還要發布上述命令的輸出,以便我可以確切地知道Task Scheduler中的錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.