天天看點

shell腳本備份mysql資料庫_shell腳本備份MySQL資料庫

需求

臨近年關整理一些腳本程式,發現一個MySQL資料庫備份的腳本可以和大家分享一下,基于環境是Ubuntu 10.04 server

思路

擷取mysql伺服器所有資料庫名稱,過濾掉不需要備份的資料庫

通過mysqldump來for循環導出所有的資料庫的sql檔案

用zip加密壓縮所有的sql檔案

定期進行資料清理工作

shell代碼

資料庫導出代碼

#!/bin/bash

#1.資料庫資訊定義

mysql_host="192.168.1.1"

mysql_user="root"

mysql_passwd="root"

#sql備份目錄

root_dir="/backup"

back_dir="/backup/databases"

data_dir="databases"

store_dir="database"

if [ ! -d $back_dir ]; then

mkdir -p $back_dir

fi

#備份的資料庫數組

db_arr=$(echo "show databases;" | mysql -u$mysql_user -p$mysql_passwd -h$mysql_host)

#不需要備份的單例資料庫

nodeldb="test1"

#目前日期

date=$(date -d '+0 days' +%Y%m%d)

#zip打包密碼

zippasswd="passwd"

zipname="lczh_"$date".zip"

#2.進入到備份目錄

cd $back_dir

#3.循環備份

for dbname in ${db_arr}

do

if [ $dbname != $nodeldb ]; then

sqlfile=$dbname-$date".sql"

mysqldump -u$mysql_user -p$mysql_passwd -h$mysql_host $dbname >$sqlfile

fi

done

#4.zip打包所有的sql檔案

cd $root_dir/$store_dir

zip -r -P $zippasswd $zipname $root_dir/$data_dir

#打包成功後删除sql檔案

if [ $? = 0 ]; then

rm -r $data_dir

fi

shell腳本備份mysql資料庫_shell腳本備份MySQL資料庫