標籤:mysql 指令碼 備份
[[email protected] ~]# cat mysqldump.sh#!/bin/bash#echo "============================"echo "mysql dump,youcan choose which database to backup,if not I will back all databases"echo "==========================="read -p "Please tell me which database do you want to backup ===> " base[ -d /data/back ] || mkdir -p /data/back && chown -R mysql.mysql /data/backtime=`date +%F--%T`datedir1=/data/back/all_$timedatedir2=/data/back/${base}_${time}if [ -z $base ];thenmysqldump -uzou -h172.16.1.7 -p123.comer --all-databases --lock-all-tables --flush-logs > $datedir1 >>/dev/null[ $? == 0 ] && echo "$time == ALL databases has backup ok" >> /data/back/back.log || exit 5else mysql -e "use $base" &> /dev/null [ $? == 0 ] || echo "Maybe the database $base is not exsit or the name is wrong" >> /data/back/back.log && exit 7mysqldump -uzou -h172.16.1.7 -p123.comer --databases --lock-tables $base > $datedir2 >> /dev/null[ $? == 0 ] && echo "database $base has backup ok" >> /data/back/back.log || exit 9fi增量備份指令碼如下[[email protected] ~]# cat mysqldump_added.sh #!/bin/bash#mysqladmin flush-logsbackindexdir=/data/indexback/[ -e $backindexdir ] || mkdir -p /data/indexback/indexfile=`grep ‘^log_bin‘ /etc/my.cnf | awk -F "=" ‘{print $2}‘`.indexindexdir=`grep ‘datadir‘ /etc/my.cnf | cut -d = -f2`binfiles=`cat ${indexdir}/${indexfile}`totalfile=`wc -l ${indexdir}/${indexfile} | awk ‘{print $1}‘`numindex=0for file in $binfiles;donumindex=$(($numindex+1))base=`basename $file`#判斷備份目錄裡面沒有這個檔案,並且不是剛產生的二進位檔案(上面執行命令會自動建立一個,新的暫時沒資料)if [ ! -e $backindexdir/$base -a $numindex -ne $totalfile ];thencp $indexdir/$base $backindexdirfidone
本文出自 “北極的linux” 部落格,請務必保留此出處http://941012521.blog.51cto.com/9253690/1845536
mysql指令碼備份