廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 28305 個閱讀者
 
發表文章 發表投票 回覆文章
  可列印版   加為IE收藏   收藏主題   上一主題 | 下一主題   
pigpig5442
個人頭像
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x0 鮮花 x13
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
推文 x0
[轉帖]自動備份 MySQL 資料庫
用途: 備份 MySQL 指定之多重資料庫.


特點:


1)以電子郵件方式作異地傳輸


2)系統環境須求簡單, 均為內建之基本服務


3)定時排程


4)支援以虛擬主機架設網站的一般用戶.





步驟一:


如果網站是架在自己的主機, 請以 root 身份操作, 若為租用的主機, 請以所屬的帳戶身份操作.





建立一個新目錄


#mkdir /usr/local/bin/bk_dir


#cd /usr/local/bin/bk_dir





將以下兩程式碼分別存成 backup.sh , email.pl





#cat backup.sh


代碼:



#!/bin/sh


#


# 說明:資料庫 MySQL 備份,並以 mail 附加檔案傳輸至指定郵件地址


# 撰寫人:alang (alangnet.24cc.com)


# 2003.6.7


#


# 檔案結構:


#       backup.sh --> 備份執行檔


#       data/         --> 備份檔儲存目錄


#       email.pl     --> 郵寄程式(主機需支援 perl)


#


#


#


# 參數定義 !!請自行修改!!


mainPath="/usr/local/bin/bk_dir"


db_user="dbuser"


db_pass="dbpass"


dataPath="${mainPath}/data"


archiveName="alangnet.ptez.org_bak.tgz"


#


#


#


# 資料庫轉出 mysqldump !!請自行修改!!


# 多重資料庫請依下列格式自行添加,備份檔名切勿重複


# mysqldump -u${db_user} -p${db_pass} --opt 資料庫名稱 > ${dataPath}/備份檔名.sql


#


mysqldump -u${db_user} -p${db_pass} --add-drop-table alangnet_nukeDB > ${dataPath}/nukedb.sql





mysqldump -u${db_user} -p${db_pass} --add-drop-table alangnet_phpbbDB > ${dataPath}/phpbbdb.sql


#


#


# 壓縮檔案並郵寄


#


#!!請自行修改!!


#tar -zcf 壓縮資料庫檔 資料庫檔1 資料庫檔2


cd ${dataPath}


tar -zcf ${archiveName} nukedb.sql phpbbdb.sql


cd ../





if [ -f ${dataPath}/${archiveName} ]; then


    perl email.pl


    echo "## The backup job was done. Time is $(date +%Y-%m-%d@%T) ##"


fi





#


#


# eof









#cat email.pl


代碼:



#!/usr/bin/perl -w


####################################


# Email message attachments in Perl#


# written by alang 2004.01.15     #


####################################





use MIME::Lite;


use Net::SMTP;


##!!請自行修改!!


my $SenderName = 'Administrator-alangnet'


my $WebsiteName = 'alangnet.ptez.org'


my $from_address = 'admin@alangnet.ptez.org'


my $to_address = 'alangnet@seed.net.tw'


my $subject = 'MySQL Backup Process Reporting! From ['.$WebsiteName.']'


my $filename = 'alangnet.ptez.org_bak.tgz'


my $recommended_filename = 'alangnet.ptez.org_bak.tgz'





my $msg = MIME::Lite->new(


  From => $SenderName.' <'.$from_address.'>',


  To => $to_address,


  Subject => $subject,


  Type => 'text/plain',


  Data => "#############[ 此封郵件請勿回覆 ]#############





"


    ."管理員(".$SenderName.") 你好 ,


"


    ."您的網站(".$WebsiteName.")所屬的資料庫已完成備份作業,如附檔所示.


"


    ."請將它另存至其他位置並妥善保存.")


  or die "Error creating MIME body: $!


";





# Attach the tar file


$msg->attach(Type=>'application/x-tar',


  Path =>'data/'.$filename,


  Filename =>$recommended_filename)


  or die "Error attaching tar file: $!


";





my $message_body = $msg->as_string();





# Set this variable to your smtp server name


my $mailserver = 'localhost'





$smtp = Net::SMTP->new($mailserver) or


    die "Couldn't connet server";


$smtp->mail( $from_address );


$smtp->to( $to_address );





$smtp->data();


$smtp->datasend($message_body);


$smtp->dataend();





$smtp->quit();









兩個程式檔均須依自身使用狀況適當修改不同的參數值, 唯須特別提醒的為:


backup.sh 的 archiveName 參數 須與 email.pl 的 $filename 參數相同.





步驟二:


賦予執行的權限


chmod 700 backup.sh email.pl





步驟三:


製作備份檔儲存目錄


#mkdir /usr/local/bin/bk_dir/data





完成及測試:


root 執行


#/usr/local/bin/bk_dir/backup.sh


收郵件查看





補充:


此程序已運行本站租用的虛擬主機多日, 期間曾發生的錯誤均修改完畢.


因使用電子郵件作傳輸媒介, 請以穩定性高, 容量大做接收郵箱
 
     



獻花 x0 回到頂端 [樓 主] From:台灣中華電信 | Posted:2005-05-16 04:44 |
jcle
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x4
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

感謝大大分享.......
在目前動態網頁盛行的時代裡
資料庫的運用和備份非常的重要
感謝大大提供了備份的程式
造福大家
謝謝


獻花 x0 回到頂端 [1 樓] From:台灣數位聯合 | Posted:2005-05-22 07:01 |
mnbmnb5266
個人文章 個人相簿 個人日記 個人地圖
小有名氣
級別: 小有名氣 該用戶目前不上站
推文 x5 鮮花 x46
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

謝謝大大了,自動備份真的很方便啊


我的收藏
https://pan.baidu.com/s/1QUJ9lr_VzxXKRJAlBJgUQA
提取码:am2c
獻花 x0 回到頂端 [2 樓] From:加拿大Rogers | Posted:2010-08-28 00:59 |

首頁  發表文章 發表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.082351 second(s),query:16 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言