這個指令碼雖然比較簡單,但覺得會幫我們很大的忙!
簡單說一下:
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.