2010年5月28日 星期五

MySQL資料庫的自動備份

MySQL資料庫的自動備份

### 備份某一個資料庫的內容,輸出成SQL文字檔案,並且壓縮。
### mysql備份指令mysqldump需要將locktablet權限功能打開才可使用。
### 先使用 vi 寫了一個檔案 sql_backup.sh
#!/bin/sh
# ==============================================================
DBNAME="database name"
DBUSER="database user"
DBPASS="database password"
BAKDATE=`date +%y%m%d%k%M`
BAKPATH="/home/mtchang/public_html/private/backup/"
BF="$BAKPATH"db_"$BAKDATE"_"$DBNAME".sql
TARBF=db_"$BAKDATE"_"$DBNAME".sql
mysqldump $DBNAME -u$DBUSER -p$DBPASS --opt > $BF
cd $BAKPATH
tar czf $TARBF.tar.gz $TARBF
rm -f $TARBF

### 執行過程及產生的檔案 ###
./sql_backup.sh
# 執行備份script
mtchang@web:~/public_html/private/backup$ ls -l
-rw-r--r-- 1 mtchang mtchang 551350 Apr 21 23:00 db_0704212300_mtchang.sql.tar.bzip
-rwxr-xr-x 1 mtchang mtchang 382 Apr 21 22:51 sql_backup.sh

###
寫入排成cron,每天早上三點執行備份資料庫的工作 ###
crontab -e

# use /bin/sh to run commands, no matter what /etc/passwd says
SHELL=/bin/sh
# run at am 03:00 every day
0 3 * * * /home/sql_backup.sh

沒有留言:

張貼留言