mysql全備指令碼升級版,支援多台主機,多個資料庫

來源:互聯網
上載者:User

標籤:localhost   mysql   資料庫   密碼   主機   

此腳是對上午寫的指令碼的升級,(前一版地址http://www.sql8.net/a/course/shujuku/Mysql/2014/0815/30340.html)

針對同事多個資料庫且資料帳號,密碼,主機均可能不相同的情況改寫

改寫後,需要兩個指令碼協同完成。

一為批量執行指令碼 batch.sh

二為資料備份指令碼databak.sh


*******************************批量執行指令碼 batch.sh**************************************


sh databak.sh  192.168.1.1 database1 bak1 12322  
sh databak.sh  localhost database2,database3,database4 bak 123333  


*********************************************************************************************


*******************************資料備份指令碼databak.sh**************************************

#!/bin/bash
#mysql全備指令碼,此指令碼可以備份多個資料庫,
#為每個資料建立單獨的檔案夾進行備份
#對於不同帳號,不同庫,不是主機
#調用參數格式 主機 資料庫 帳號 密碼
#調用方法
#同一帳號多個資料庫可以用,分隔
#sh databak.sh  主機 資料庫 帳號 密碼  
#sh databak.sh  localhost youoil bak 123  




#author:yxy
#website:www.sql8.net
#mail:[email protected]
#created:2014-8-14


#Mysql dabase information
#主機
db_host=$1
#databases
#需要備份的資料庫,如果有多個資料庫,請用,分隔
databaseList=$2
#資料庫帳號
db_user=$3
#資料庫密碼
db_passwd=$4
#mysql安裝目錄
MYSQL="/opt/lampp/bin/mysql"
#mysql命令目錄
MYSQLDUMP="/opt/lampp/bin/mysqldump"


if [ "$db_host" == "" ] || [ "$databaseList" == "" ] || [ "$db_user" == "" ] || [ "$db_passwd" == "" ]; then
echo "Insufficient arguments"
exit 1
fi
echo "$db_host" "$databaseList" "$db_user"  "$db_passwd"




#Path information
#存放備份檔案的路徑
BACKUP_DB="/opt/backup/database"
LogFile=$BACKUP_DB"/bak.log"


#Time information
#時間
time=`date +"%Y-%m-%d-%H-%M-%S"`
day=`date +"%d"`
month=`date +"%Y-%m"`
weekday=`date +"%u"`






#Path enable write
if [ ! -w "$BACKUP_DB" ]; then
chmod -R 700 $BACKUP_DB
fi


#echo "**********************************host info****************************************"
#echo "db_host:"$db_host
#echo "db_user:"$db_user
#echo "db_passwd:"$db_passwd
#echo "MYSQL:"$MYSQL
#echo "MYSQLDUMP:"$MYSQLDUMP
#echo "databaseName:"$databaseName
#echo "BACKUP_DB:"$BACKUP_DB
#echo "**********************************************************************************"




#Mysql Backup
Date=`date +%Y%m%d`
Begin=`date +"%Y-%m-%d %H:%M:%S"`
#echo "start backup database:"$databaseName"   "$Begin


for databaseName in `echo "$databaseList" | sed ‘s/,/\n/g‘`
do  
    echo $databaseName


#fileName
#產生備份檔案名
fileName=$databaseName"-"$time".sql"
#產生備份檔案完整路徑
BACKUP_DBPATH=$BACKUP_DB"/"$databaseName




#echo "***********************************database Info***********************************************"
#echo "BACKUP_DBPATH:"$BACKUP_DBPATH
#echo "fileName:"$fileName
#echo "**********************************************************************************"


 


if [ ! -d "$BACKUP_DBPATH" ]; then
mkdir "$BACKUP_DBPATH" 
fi
#備份mysql
$MYSQLDUMP -u $db_user -p$db_passwd -h $db_host $databaseName > $BACKUP_DBPATH/$fileName
#打包.sql檔案
cd $BACKUP_DBPATH && tar -czf $fileName.tar.gz $fileName && rm -rf $fileName && chmod go-rwx $fileName.tar.gz


Last=`date +"%Y-%m-%d %H:%M:%S"`
#echo "end backup database:"$databaseName"   "$Last
#輸出日誌
echo start:$Begin end:$Last $fileName succ >> $LogFile


done

********************crontab設定**********************************************

根據需要設定相關備份規則,此處略則部分規則


#每天1點備份

* 1 * * * cd /opt/backup/database && ./1.sh



#每周一1點備份

* 1 * * 1 cd /opt/backup/database && ./1.sh



#每2小時備份

* */2 * * * cd /opt/backup/database && ./1.sh



#每2天備份

* * */2 * * cd /opt/backup/database && ./1.sh


#每個月5號1點20分備份

20 1 5 * * cd /opt/backup/database && ./1.sh



更多contrab規則請看

 http://www.sql8.net/a/course/caozuoxitong/liunx/2014/0815/30328.html


本文出自 “黑鷹” 部落格,請務必保留此出處http://1657030.blog.51cto.com/1647030/1540680

相關文章

聯繫我們

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