windows定時執(zhí)行PHP相信不少讀者(PHP愛好者)在工作、學(xué)習(xí)的過程中經(jīng)常抱怨:在WIN如何讓PHP定時自動發(fā)信呢??如何讓MYSQL實(shí)現(xiàn)自動備份而無后顧之憂呢??如 果完全依靠手工進(jìn)行當(dāng)然也可以實(shí)現(xiàn),但操作上似乎過于繁瑣了一點(diǎn)!別著急,利用系統(tǒng)的任務(wù)計(jì)劃程序(Windows 98稱之為計(jì)劃任務(wù))可輕易解決這一問題。這一功能往往被很多用戶忽略或者未曾想到:)。
所謂任務(wù)計(jì)劃就是由計(jì)算機(jī)自動調(diào)用用戶事先設(shè)置好的應(yīng)用程序,從而達(dá)到簡化用戶操作的目的。利用Windows 2000的任務(wù)計(jì)劃程序(相當(dāng)與*NIX下的cron程序,這里不再對其詳述),我們可以安排任何腳本、程序或文檔在最恰當(dāng)?shù)臅r候運(yùn)行,從而滿足自己的需 要。下面以Windows 2000為例。
具體來說,我們?nèi)粜枥萌蝿?wù)計(jì)劃程序自動運(yùn)行則應(yīng)執(zhí)行如下步驟:
1.單擊“開始”按鈕,然后依次選擇“程序”→“附件”→“系統(tǒng)工具”→“任務(wù)計(jì)劃”(或者是“設(shè)置”→“控制面板”→“任務(wù)計(jì)劃”),啟動Windows 2000的任務(wù)計(jì)劃管理程序。
2.在“任務(wù)計(jì)劃”窗口中雙擊“添加任務(wù)計(jì)劃”圖標(biāo),啟動系統(tǒng)的“任務(wù)計(jì)劃向?qū)А?,然后單擊“下一步”按鈕,在給出的程序列表中選擇需要自動運(yùn)行的應(yīng)用程序,然后單擊“下一步”按鈕。
設(shè)置適當(dāng)?shù)娜蝿?wù)計(jì)劃名稱并選擇自動執(zhí)行這個任務(wù)的時間頻率(如每天、每星期、每月、一次性、每次啟動計(jì)算機(jī)時、每次登錄時等),然后單擊“下一步”按鈕。
此時系統(tǒng)將會要求用戶對程序運(yùn)行的具體時間進(jìn)行設(shè)置,如幾號、幾點(diǎn)鐘、哪幾個時間段才能運(yùn)行等,我們只需根據(jù)自己的需要加以設(shè)置即可。
4.接下來系統(tǒng)將會要求用戶設(shè)置適當(dāng)?shù)挠脩裘懊艽a,以便系統(tǒng)今后能自動加以運(yùn)行。
5.最后,我們只需單擊“完成”按鈕即可將相應(yīng)任務(wù)添加到Windows 2000的任務(wù)計(jì)劃程序中,此后它就會自動“記住”這個任務(wù),一旦系統(tǒng)時間及相關(guān)條件與用戶設(shè)置的計(jì)劃相符,它就會自動調(diào)用用戶所指定的應(yīng)用程序,十分方 便(每次啟動Windows 2000的時候,任務(wù)計(jì)劃程序都會自動啟動,并在后臺運(yùn)行,確保用戶的計(jì)劃能夠按時執(zhí)行)。
現(xiàn)在我們來測試一下剛才所建的任務(wù)是否成功,鼠標(biāo)右鍵單擊“php”程序圖標(biāo)(如圖6所示),在彈出的菜單里面選擇“運(yùn)行”。一般情況下程序圖標(biāo)只要這樣 激活運(yùn)行就可以正常啟動。如果運(yùn)行失敗可查看用戶和密碼是否設(shè)置正確,還有確定“Task Scheduler”服務(wù)是否已啟動,本人當(dāng)初就是為了節(jié)省系統(tǒng)資源把它關(guān)掉了導(dǎo)致運(yùn)行失敗,害我找了大半天。另外也可從“系統(tǒng)日志”里查看到底是什么原 因造成運(yùn)行失敗的。
好了,講了這么多任務(wù)計(jì)劃的應(yīng)用,現(xiàn)在我們切入正題,下面將介紹兩個例子:
一、讓PHP定時運(yùn)行吧!
1、 編輯如下代碼,并保存為test.php:
<?php
$fp = @fopen("test.txt", "a+");
fwrite($fp, date("Y-m-d H:i:s") . " 讓PHP定時運(yùn)行吧!\n");
fclose($fp);
?>
打開文本輸入:D:\php4\php.exe -q D:\php4\test.php
保存為.bat格式。
D:\php4\php.exe 是php安裝路徑,D:\php4\test.php是要定時運(yùn)行的程序的路徑。
2、添加一個任務(wù)計(jì)劃,選擇那個.bat文件
3、時間設(shè)置為每隔1分鐘運(yùn)行一次,然后運(yùn)行這個任務(wù)。
4、現(xiàn)在我們來看看d:\php4\test.txt文件的內(nèi)容時候是否成功。如果內(nèi)容為如下所示,那么恭喜你成功了。
2003-03-03 11:08:01 讓PHP定時運(yùn)行吧!
2003-03-03 11:09:02 讓PHP定時運(yùn)行吧!
2003-03-03 11:10:01 讓PHP定時運(yùn)行吧!
2003-03-03 11:11:02 讓PHP定時運(yùn)行吧!
二、讓MYSQL實(shí)現(xiàn)自動備份變成可能!
1、編輯如下代碼,并保存為backup.php,如果要壓縮可以拷貝一個rar.exe:
<?php
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: <?php echo $argv[0]; ?> <option>
<option> can be database name you would like to backup.
With the --help, or -? options, you can get this help and exit.
<?php
} 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ù)計(jì)劃,在(如圖2所示)這一步輸入命令:
D:\php4\php.exe -q D:\php4\backup.php databasename
3、時間設(shè)置為每天運(yùn)行一次,然后運(yùn)行這個任務(wù)。
4、最后會在d:\php4\目錄下生成一個以數(shù)據(jù)庫名和當(dāng)前時間組成的rar文件。
5、恭喜你!大功告成了!
當(dāng)然備份方式有很多種,讀者可按照自己喜歡的去做!
以上是原著.結(jié)合本人實(shí)賤,補(bǔ)充說明如下:
1. 如果出現(xiàn)錯誤:
在試著設(shè)置任務(wù)帳戶信息時出現(xiàn)錯誤
指定的錯誤是:
0x80070005:拒絕訪問
您沒有運(yùn)行所請求的操作的權(quán)限
在上面'"4.接下來系統(tǒng)將會要求用戶設(shè)置適當(dāng)?shù)挠脩裘懊艽a(如圖5所示),以便系統(tǒng)今后能自動加以運(yùn)行".這里最好用"system"用戶,密碼可為空.
這個system的權(quán)限非常之高,比你的administrator還要高,所以你在運(yùn)行命令的時候千萬不要亂來,這個可是什么提示都沒有就會無條件執(zhí)行的,這個權(quán)限下你kill核心進(jìn)程都行.
該文章在 2012/6/7 13:15:04 編輯過