window 定時備份mysql併發送郵件

最近的項目,客戶要求要把數據庫每天做備份,並且發送的郵箱,在Linux下就不用說了,方便的很,可是,o(︶︿︶)o 唉!服務器是Windows的2003 。整吧!在網上找了點資料,東拼西湊的總算是鼓搗出來了。

第一步,定時備份。

首先是要有腳本,然後加載Windows的定時任務就好了。

核心的備份語句如下:


mysqldump  -hlocalhost -uroot -p%MySql_pw% --default-character-set=utf8 -R --triggers --hex-blob --single-transaction -B %%i >%BAK_FILE% 
%RAR_Dir% a %BAK_FILE:~0,-4%.rar %BAK_FILE%
DEL /F /A /Q %BAK_FILE%
echo 數據庫【%%i】 已經備份到%BAK_Dir%\%BAK_Dir2%\%BAK_FILE%.rar >> %LOG_FILE%
)

另外,還有根據時間創建目錄、刪除自定義天以前的備份等。具體的看附件內容吧!

發送郵件是一定要設置對SMTP地址和帳號密碼,文件路徑要對應上。



Namespace = "http://schemas.microsoft.com/cdo/configuration/"
dtmYesterday =  Date
strYear = Year(dtmYesterday ) 
strMonth = Month(dtmYesterday ) 
If Len(strMonth) = 1 Then 
    strMonth = "0" & strMonth 
End If 
strDay = Day(dtmYesterday) 
If Len(strDay) = 1 Then 
    strDay = "0" & strDay 
End If 
strYMD = strYear & "-" & strMonth  & "-" &  strDay
Set Email = CreateObject("CDO.Message")
Email.From = "對方地址"
Email.To = "你的地址"
Email.Subject = "數據備份 " & strYMD
Email.Textbody = "OK!"
rem 這裏要和之前備份的目錄對應上
Email.AddAttachment "E:\\mysql_db_bak\\" & strYMD & "\\數據庫名稱_" & strYMD & ".rar"
With Email.Configuration.Fields
.Item(NameSpace&"sendusing") = 2
.Item(NameSpace&"smtpserver") = "SMTP對應的服務器" 
.Item(NameSpace&"smtpserverport") = 25
.Item(NameSpace&"smtpauthenticate") = 1
.Item(NameSpace&"sendusername") = "你的用戶名"
.Item(NameSpace&"sendpassword") = "你的密碼"
.Update
End With
Email.Send


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章