SHELL 備份Mysql資料庫

來源:互聯網
上載者:User

這個指令碼雖然比較簡單,但覺得會幫我們很大的忙!
簡單說一下:
DB_USER=”user” 為使用者名稱
DB_PASS=”password” 為密碼

mkdir /home/mysqlbak/$DATE 指定並建立要備份到的目錄
BIN_DIR=”/usr/local/mysql/bin” 指定你的MYSQL的位置
BCK_DIR=”/home/mysqlbak/$DATE” 將你的Database Backup到以日期為目錄的檔案夾下

$BIN_DIR/mysqldump –opt -u$DB_USER -p$DB_PASS discuz > $BCK_DIR/discuz.sql
這個就是將你要備份的資料庫添加進來就可以備份了,一個庫添加一條,”discuz ” 就是要備份的庫名,”discuz.sql”是備份出來的資料檔案名.
指令碼如下:

#!/bin/sh<br /># File: /home/mysql/backup.sh<br /># Database info bakupmysql<br />DB_USER="user"<br />DB_PASS="password"<br /># Others vars<br />DATE=`date +%Y-%m-%d`<br />mkdir /home/mysqlbak/$DATE<br />BIN_DIR="/usr/local/mysql/bin"<br />BCK_DIR="/home/mysqlbak/$DATE"<br /># TODO<br />$BIN_DIR/mysqldump --opt -u$DB_USER -p$DB_PASS discuz > $BCK_DIR/discuz.sql<br />$BIN_DIR/mysqldump --opt -u$DB_USER -p$DB_PASS zjblog > $BCK_DIR/zjblog.sql $BIN_DIR/mysqldump --opt -u$DB_USER -p$DB_PASS openads > $BCK_DIR/openads.sql<br />

 

 

 

 

 

 


linux

系統中

mysql

自動備份指令碼

 

mysql
資料庫中儲存著網站最核心最寶貴的資料,如果因為不可預測的原因導致資料損毀或丟失,對一個網站的打擊是毀滅性的,一次又一次的教訓提醒著我們一定要做好備份,但是手工備份確實比較麻煩,每天都要手工操作一次,如果站多的話簡直是一種折磨,不過好在我們可以通過編寫好的指令碼讓系統自動備份資料,省去體力勞動。下面收集了幾種自動備份
mysql
資料庫的指令碼,一般的站夠用了,但要注意:如果資料庫過大,或者系統設定不當,都可能導致自動備份失敗,因此即使採用了自動備份,也要記得經常查看是否備份成功,以及備份的資料是否完整、可用。

 

只需要將下面的指令碼內容儲存為
mysqlbackup.sh
,並添加到
crontab
即可。如在
ssh
中輸入:

crontab -e

輸入:

00 00 * * * /home/website/mysqlbackup.sh

即為每天
00:00
自動運行備份指令碼。

   
1
、自動匯出
mysql
備份,並上傳到指定
ftp

#!/bin/bash

#ftp
設定

Host=FTP_IP

Username=FTP_user

Passwd=FTP_passwd

#
備份
mysql
並匯出到檔案

mysqldump -u
使用者
-p
密碼
資料庫名
> $(date +%Y%m%d)-
資料庫名
.sql

#
壓縮備份檔案

tar -zcvf $(date +%Y%m%d)mysql
資料庫名
.tar.gz $(date +%Y%m%d)*

#
上傳到
ftp

echo "open $Host

     
user $Username $Passwd

     
bin

     
cd /hzg/

     
prompt off

     
mput $(date
+%Y%m%d)mysql
資料庫名
.tar.gz

     
printf "/n"

     
close

     
bye"|ftp -i -n

#
刪除舊的備份檔案

rm -rf $(date +%Y%m%d)-
資料庫名
.sql $(date +%Y%m%d)mysql
資料庫名
.tar.gz

#rm -rf $(date +%Y%m%d)*

rm -rf $(date +%Y%m%d)*

 

2
、自動備份
mysql
資料庫,並發送到指定
email

#
備份並匯出
mysql
資料庫到檔案

mysqldump -uroot -ppassword --databases db1 db2 db3 >
/home/website/backups/databackup.sql

#
壓縮備份檔案

tar zcf /home/website/backups/databackup.sql.tar.gz
/home/website/backups/

#
發送到指定郵箱

echo "
主題
:
Database Backup
" |
mutt -a /home/website/backups/mysqlbackup.sql.tar.gz -s "
內容
:
Database Backup
" www@gmail.com

#
刪除舊的備份檔案

rm -r /home/website/backups/*

 


-ppassword
中的
password
換為自己的
root
密碼,將
db1 db2 db3
換為你需要備份的資料庫名。路徑和郵箱等自己替換即可。

也可以用下面的命令直接匯出
mysql
備份為壓縮檔:

mysqldump -u
使用者
-p
密碼
資料庫名
| gzip -c > $(date +%Y%m%d)-
資料庫名
.sql.

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.