天天看點

mysql資料庫ftp備份_Linux下自動備份MySQL資料庫并上傳到遠端FTP伺服器且删除指定日期前的備份Shell腳本...

說明:

1、備份MySQL資料庫存放目錄/var/lib/mysql下面的vos3000db資料庫到/home/mysql_data裡面,并且儲存為vos3000db_bak_2012_06_30.tar.gz的壓縮檔案格式(2012_06_30是指備份執行時當天的日期),最後隻保留最近7天的備份

2、上傳/home/mysql_data裡面的備份檔案到遠端FTP伺服器上,并且隻保留最近7天的備份

3、FTP伺服器:192.168.21.139  端口:21 賬号:admin 密碼:123456  mysql_data為備份檔案存放目錄(此目錄需要預先在FTP伺服器建立好)

實作步驟:

1、安裝ftp指令

apt-get install ftp   #安裝ftp

2、建立儲存備份檔案的目錄:/home/mysql_data

cd /home  #進入目錄

mkdir mysql_data   #建立目錄

3、建立備份腳本檔案:/home/mysql_data/mysql_databak.sh

cd /home/mysql_data     #進入目錄

touch mysql_databak.sh  #建立檔案

nano  mysql_databak.sh  #編輯檔案,輸入以下内容

#!/bin/sh

DUMP=/usr/bin/mysqldump    #mysqldump備份程式執行路徑

OUT_DIR=/home/mysql_data   #備份檔案存放路徑

LINUX_USER=root            #系統使用者名

DB_NAME=vos3000db               #要備份的資料庫名字

DB_USER=root              #資料庫使用者名

DB_PASS=521521             #資料庫密碼

DAYS=7         #DAYS=7代表删除7天前的備份,即隻保留最近7天的備份

cd $OUT_DIR                #進入備份存放目錄

DATE=`date +%Y_%m_%d`      #擷取目前系統時間

OUT_SQL="$DATE.sql"        #備份資料庫的檔案名

TAR_SQL="vos3000db_bak_$DATE.tar.gz" #最終儲存的資料庫備份檔案名

$DUMP -u$DB_USER -p$DB_PASS $DB_NAME --default-character-set=utf8 --opt -Q -R --skip-lock-tables> $OUT_SQL #備份

tar -zcvf $TAR_SQL  $OUT_SQL  #壓縮為.tar.gz格式

rm $OUT_SQL   #删除.sql格式的備份檔案

chown  $LINUX_USER:$LINUX_USER $OUT_DIR/$TAR_SQL  #更改備份資料庫檔案的所有者

find $OUT_DIR -name "vos3000db_bak*" -type f -mtime +$DAYS -exec rm {} \;  #删除7天前的備份檔案(注意:{} \;中間有空格)

deldate=` date -d -7day +%Y_%m_%d `   #删除ftp伺服器空間7天前的備份

ftp -n<

open 192.168.15.5 21

user sam 521521

binary  #設定二進制傳輸

cd mysql_data  #進入ftp目錄

lcd /home/mysql_data  #列出本地目錄

prompt

mput vos3000db_bak_$DATE.tar.gz   vos3000db_bak_$DATE.tar.gz   #上傳目錄中的檔案

mdelete vos3000db_bak_$deldate.tar.gz  vos3000db_bak_$deldate.tar.gz  #删除ftp空間7天前的備份

lose

bye !

ctrl+o   #儲存配置

ctrl+x   #退出

4、修改檔案屬性,使其可執行

chmod +x /home/mysql_data/mysql_databak.sh

5、修改/etc/crontab

nano /etc/crontab  #在下面添加

45 22 * * * root  /home/mysql_data/mysql_databak.sh   #表示每天22點45分執行備份

6、重新啟動crond使設定生效

service cron stop  #停止

service cron start #啟動

/etc/init.d/cron restart #重新開機

chkconfig cron on #設為開機啟動  先要安裝chkconfig(apt-get install chkconfig)

在/home/mysql_data目錄下面可以看到vos3000db_bak_2012_06_30.tar.gz這樣的壓縮檔案

如果需要恢複檔案的時候,隻需要把這個檔案解壓:tar -zxvf vos3000db_bak_2012_06_30.tar.gz

然後導入到資料庫中即可。

至此,Debian下自動備份MySQL資料庫并上傳到遠端FTP伺服器且删除指定日期前的備份Shell腳本完成。