讓php定時運行備份mysql

來源:互聯網
上載者:User
讓php定時運行備份mysql!

作者: phpteam, ptker

     相信不少讀者(PHP愛好者)在工作、學習的過程中經常抱怨:在WIN如何讓PHP定時自動發信呢??如何讓MYSQL實現自動備份而無後顧之憂呢??如果完全依靠手工進行當然也可以實現,但操作上似乎過於繁瑣了一點!別著急,利用系統的工作排程器(Windows 98稱之為計劃任務)可輕易解決這一問題。這一功能往往被很多使用者忽略或者未曾想到:)。

     所謂任務計劃就是由電腦自動調用使用者事先設定好的應用程式,從而達到簡化使用者操作的目的。利用Windows 2000的工作排程器(相當與*NIX下的cron程式,這裡不再對其詳述),我們可以安排任何指令碼、程式或文檔在最恰當的時候運行,從而滿足自己的需要。下面以Windows 2000為例。

     具體來說,我們若需利用工作排程器自動運行則應執行如下步驟:

1.單擊[開始] 按鈕,然後依次選擇“程式”→“附件”→“系統工具”→“任務計劃”(或者是“設定”→“控制台”→“任務計劃”),啟動Windows 2000的任務計劃管理程式。

2.在“任務計劃”視窗中雙擊“新增工作計劃”表徵圖,啟動系統的“任務計劃嚮導”,然後單擊“下一步”按鈕,在給出的程式列表中選擇需要自動啟動並執行應用程式,然後單擊“下一步”按鈕。
     設定適當的任務計劃名稱並選擇自動執行這個任務的時間頻率(如每天、每星期、每月、一次性、每次啟動電腦時、每次登入時等),然後單擊“下一步”按鈕。
     此時系統將會要求使用者對程式啟動並執行具體時間進行設定,如幾號、幾點鐘、哪幾個時間段才能運行等,我們只需根據自己的需要加以設定即可。

4.接下來系統將會要求使用者佈建適當的使用者名稱及密碼(5所示),以便系統今後能自動加以運行。

5.最後,我們只需單擊“完成”按鈕即可將相應任務添加到Windows 2000的工作排程器中,此後它就會自動“記住”這個任務,一旦系統時間及相關條件與使用者佈建的計劃相符,它就會自動調用使用者所指定的應用程式,十分方便(每次啟動Windows 2000的時候,工作排程器都會自動啟動,並在後台運行,確保使用者的計劃能夠按時執行)。

     現在我們來測試一下剛才所建的任務是否成功,滑鼠右鍵單擊“php”程式表徵圖(6所示),在彈出的菜單裡面選擇“運行”。一般情況下程式表徵圖只要這樣啟用運行就可以正常啟動。如果運行失敗可查看使用者和密碼是否設定正確,還有確定“Task Scheduler”服務是否已啟動,本人當初就是為了節省系統資源把它關掉了導致運行失敗,害我找了大半天。另外也可從“系統日誌”裡查看到底是什麼原因造成運行失敗的。

     好了,講了這麼多任務計劃的應用,現在我們切入正題,下面將介紹兩個例子:

一、讓PHP定時運行吧!
1、    編輯如下代碼,並儲存為test.php:
<?php
$fp = @fopen("test.txt", "a+");
fwrite($fp, date("Y-m-d H:i:s") . " 讓PHP定時運行吧!\n");
fclose($fp);
?>

2、添加一個任務計劃,在(2所示)這一步輸入命令:D:\php4\php.exe -q D:\php4\test.php

3、時間設定為每隔1分鐘運行一次,然後運行這個任務。

4、現在我們來看看d:\php4\test.txt檔案的內容時候是否成功。如果內容為如下所示,那麼恭喜你成功了。

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實現自動備份變成可能!
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.
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、添加一個任務計劃,在(2所示)這一步輸入命令:
    D:\php4\php.exe -q D:\php4\backup.php databasename
3、時間設定為每天運行一次,然後運行這個任務。
4、最後會在d:\php4\目錄下產生一個以資料庫名和目前時間組成的rar檔案。
5、恭喜你!大功告成了!

     當然備份方式有很多種,讀者可按照自己喜歡的去做!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.