天天看點

Linux平台和Windows平台下兩種自動備份MySQL資料的腳本(Shell&Bat)和步驟

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