windows定時執(zhí)行PHP相信不少讀者(PHP愛好者)在工作、學(xué)習(xí)的過程中經(jīng)常抱怨:在WIN如何讓PHP定時自動發(fā)信呢??如何讓MYSQL實現(xiàn)自動備份而無后顧之憂呢鲤氢??如 果完全依靠手工進行當(dāng)然也可以實現(xiàn)拐纱,但操作上似乎過于繁瑣了一點铜异!別著急,利用系統(tǒng)的任務(wù)計劃程序(Windows 98稱之為計劃任務(wù))可輕易解決這一問題秸架。這一功能往往被很多用戶忽略或者未曾想到:)揍庄。
所謂任務(wù)計劃就是由計算機自動調(diào)用用戶事先設(shè)置好的應(yīng)用程序,從而達到簡化用戶操作的目的东抹。利用Windows 2000的任務(wù)計劃程序(相當(dāng)與*NIX下的cron程序蚂子,這里不再對其詳述),我們可以安排任何腳本缭黔、程序或文檔在最恰當(dāng)?shù)臅r候運行食茎,從而滿足自己的需 要。下面以Windows 2000為例馏谨。
具體來說别渔,我們?nèi)粜枥萌蝿?wù)計劃程序自動運行則應(yīng)執(zhí)行如下步驟:
1.單擊“開始”按鈕,然后依次選擇“程序”→“附件”→“系統(tǒng)工具”→“任務(wù)計劃”(或者是“設(shè)置”→“控制面板”→“任務(wù)計劃”),啟動Windows 2000的任務(wù)計劃管理程序哎媚。
2.在“任務(wù)計劃”窗口中雙擊“添加任務(wù)計劃”圖標(biāo)喇伯,啟動系統(tǒng)的“任務(wù)計劃向?qū)А保缓髥螕簟跋乱徊健卑粹o拨与,在給出的程序列表中選擇需要自動運行的應(yīng)用程序稻据,然后單擊“下一步”按鈕。
設(shè)置適當(dāng)?shù)娜蝿?wù)計劃名稱并選擇自動執(zhí)行這個任務(wù)的時間頻率(如每天买喧、每星期捻悯、每月、一次性淤毛、每次啟動計算機時今缚、每次登錄時等),然后單擊“下一步”按鈕低淡。
此時系統(tǒng)將會要求用戶對程序運行的具體時間進行設(shè)置荚斯,如幾號、幾點鐘查牌、哪幾個時間段才能運行等,我們只需根據(jù)自己的需要加以設(shè)置即可滥壕。
4.接下來系統(tǒng)將會要求用戶設(shè)置適當(dāng)?shù)挠脩裘懊艽a,以便系統(tǒng)今后能自動加以運行纸颜。
5.最后,我們只需單擊“完成”按鈕即可將相應(yīng)任務(wù)添加到Windows 2000的任務(wù)計劃程序中绎橘,此后它就會自動“記住”這個任務(wù)胁孙,一旦系統(tǒng)時間及相關(guān)條件與用戶設(shè)置的計劃相符,它就會自動調(diào)用用戶所指定的應(yīng)用程序称鳞,十分方 便(每次啟動Windows 2000的時候涮较,任務(wù)計劃程序都會自動啟動,并在后臺運行冈止,確保用戶的計劃能夠按時執(zhí)行)狂票。
現(xiàn)在我們來測試一下剛才所建的任務(wù)是否成功,鼠標(biāo)右鍵單擊“php”程序圖標(biāo)(如圖6所示)熙暴,在彈出的菜單里面選擇“運行”闺属。一般情況下程序圖標(biāo)只要這樣 激活運行就可以正常啟動。如果運行失敗可查看用戶和密碼是否設(shè)置正確周霉,還有確定“Task Scheduler”服務(wù)是否已啟動掂器,本人當(dāng)初就是為了節(jié)省系統(tǒng)資源把它關(guān)掉了導(dǎo)致運行失敗,害我找了大半天俱箱。另外也可從“系統(tǒng)日志”里查看到底是什么原 因造成運行失敗的国瓮。
好了,講了這么多任務(wù)計劃的應(yīng)用,現(xiàn)在我們切入正題乃摹,下面將介紹兩個例子:
一禁漓、讓PHP定時運行吧!
1峡懈、 編輯如下代碼璃饱,并保存為test.php:
$fp = @fopen("test.txt", "a+");
fwrite($fp, date("Y-m-d H:i:s") . " 讓PHP定時運行吧!\n");
fclose($fp);
?>
打開文本輸入:D:\php4\php.exe -q D:\php4\test.php
保存為.bat格式肪康。
D:\php4\php.exe 是php安裝路徑荚恶,D:\php4\test.php是要定時運行的程序的路徑。
2磷支、添加一個任務(wù)計劃谒撼,選擇那個.bat文件
3、時間設(shè)置為每隔1分鐘運行一次雾狈,然后運行這個任務(wù)廓潜。
4、現(xiàn)在我們來看看d:\php4\test.txt文件的內(nèi)容時候是否成功善榛。如果內(nèi)容為如下所示辩蛋,那么恭喜你成功了。
2003-03-03 11:08:01 讓PHP定時運行吧移盆!
2003-03-03 11:09:02 讓PHP定時運行吧悼院!
2003-03-03 11:10:01 讓PHP定時運行吧!
2003-03-03 11:11:02 讓PHP定時運行吧咒循!
二据途、讓MYSQL實現(xiàn)自動備份變成可能!
1叙甸、編輯如下代碼颖医,并保存為backup.php,如果要壓縮可以拷貝一個rar.exe:
if ($argc != 2 || in_array($argv[1], array('--help', '-?'))) {
?>
backup?? Ver 0.01, for Win95/Win98/WinNT/Win2000/WinXP on i32
Copyright (C) 2000 ptker All rights reserved.http://www.dareng.com
This is free software,and you are welcome to modify and redistribute it
under the GPL license
PHP Shell script for the backup MySQL database.
Usage:
can be database name you would like to backup.
With the --help, or -? options, you can get this help and exit.
} else {
$dbname = $argv[1];
$dump_tool = "c:\\mysql\\bin\\mysqldump";
$rar_tool = "d:\\php4\\rar";
@exec("$dump_tool --opt -u user -ppassword $dbname > ./$dbname.sql");
@exec("$rar_tool a -ag_yyyy_mm_dd_hh_mm $dbname.rar $dbname.sql");
@unlink("$dbname.sql");
echo "Backup complete!";
}
?>
2裆蒸、添加一個任務(wù)計劃熔萧,在(如圖2所示)這一步輸入命令:
D:\php4\php.exe -q D:\php4\backup.php databasename
3、時間設(shè)置為每天運行一次光戈,然后運行這個任務(wù)哪痰。
4、最后會在d:\php4\目錄下生成一個以數(shù)據(jù)庫名和當(dāng)前時間組成的rar文件久妆。
5晌杰、恭喜你!大功告成了筷弦!
當(dāng)然備份方式有很多種肋演,讀者可按照自己喜歡的去做抑诸!
以上是原著.結(jié)合本人實賤,補充說明如下:
1. 如果出現(xiàn)錯誤:
在試著設(shè)置任務(wù)帳戶信息時出現(xiàn)錯誤
指定的錯誤是:
0x80070005:拒絕訪問
您沒有運行所請求的操作的權(quán)限
在上面'"4.接下來系統(tǒng)將會要求用戶設(shè)置適當(dāng)?shù)挠脩裘懊艽a(如圖5所示),以便系統(tǒng)今后能自動加以運行".這里最好用"system"用戶,密碼可為空.
這個system的權(quán)限非常之高,比你的administrator還要高,所以你在運行命令的時候千萬不要亂來,這個可是什么提示都沒有就會無條件執(zhí)行的,這個權(quán)限下你kill核心進程都行.