Linux 平台和 Windows 平台下兩種自動備份MySQL資料的腳本(Shell & Bat)和步驟
@for&ever 2009-9-2
假設MySQL資料庫root 的密碼是 abc123,要備份的db的name是 forandever .
一、Linux 平台:
1.1> 編寫腳本
腳本如下:
#!/bin/bash
backupDir=/bak/DB/
bakFileNameTail=`_BAK_+"%Y%m%d%H%M%S"`
mysqldump -uroot -pabc123 forandever|gzip > ${backupDir}forandever${bakFileNameTail}.gz
exit 0
腳本簡單說明:
1、定義備份檔案存放的路徑 backupDir為 /bak/DB/
2、定義備份檔案名稱的後部分為字元串 _BAK_ + 目前的系統時間
3、通過 mysqldump 和gzip 指令備份檔案并壓縮
将以上的腳本儲存為 backupDB.sh.
1.2> 設定腳本定時執行
方法是設定 crontab
例如,添加如下的規則:
30 */6 * * * /root/backupDB.sh
每6小時執行一次備份
更詳細的設定可以查詢相關的文檔。
二、Windows 平台:
2.1> 編寫腳本
腳本如下:
@echo off
set backupDir=e:/bak/DB/
set bakFileNameTail=_BAK_%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%
c:/mysql/bin/mysqldump -uroot -pabc123 forandever>%backupDir%forandever%bakFileNameTail%.sql
c:/file/7z.exe a -tzip %backupDir%forandever%bakFileNameTail%.zip %backupDir%forandever%bakFileNameTail%.sql
del %backupDir%forandever%bakFileNameTail%.sql /q
腳本簡單說明:
1、定義備份檔案存放的路徑 backupDir 為 e:/bak/DB/
2、定義備份檔案名稱的後部分為字元串 _BAK_ + 目前的系統時間
3、通過 mysqldump 導出資料檔案
4、使用壓縮軟體 7z 壓縮資料檔案
5、靜默删除第三步的導出檔案
Windows平台下的第四步中,如果系統使用的是 winrar ,那麼這裡指令修改為:
c:/file/rar a %backupDir%forandever%bakFileNameTail%.rar %backupDir%forandever%bakFileNameTail%.sql
完整的使用rar 壓縮的bat腳本為:
@echo off
set backupDir=e:/bak/DB/
set bakFileNameTail=_BAK_%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%
c:/mysql/bin/mysqldump -uroot -pabc123 forandever>%backupDir%forandever%bakFileNameTail%.sql
c:/file/rar a %backupDir%forandever%bakFileNameTail%.rar %backupDir%forandever%bakFileNameTail%.sql
del %backupDir%forandever%bakFileNameTail%.sql /q
将以上的腳本儲存為 backupDB.bat.
2.2> 設定腳本定時執行
方法是添加一個“任務計劃”。
步驟如下:
開始——>程式附件——>系統工具——>任務計劃——>添加任務計劃——>下一步——>浏覽,找到backupDB.bat儲存的位置,下一步,然後設定想要定時執行的時間即可。
@forandever 2009-9-2