一個簡單的MySQL備份Shell腳本
更新時間:2015年07月10日 11:38:45 投稿:junjie
這篇文章主要介紹了一個簡單的MySQL備份Shell腳本,本文直接給出代碼實例,需要的朋友可以參考下
#!/bin/bash
#this is a script of mysql backup
if [ ! -d /mydata/data1/backup ] ;then
mkdir /mydata/data1/backup
fi
cd /mydata/data1/backup
file=$(find . -type f -mtime -7 | grep .*all.sql) #查找7天內(nèi)是否有備份的文件
echo $file
if [ -z $file ] ;then
echo "backup all databases..."
backupfile=$(date +%F-%H-%M-%S)
mysqldump -uroot --lock-all-tables --flush-logs --master-data=2 --all-databases > /mydata/data1/backup/"$backupfile-all.sql"
if [ $? -eq 0 ] ;then
echo "Accomplish,file is $backupfile-all.sql !"
else
echo " Failure !!! "
fi
else #查找倒數(shù)第二大的二進制文件,作增量備份
cd ..
echo "All database backups ,now start doing incremental backups!"
a=1
b=1
for file in $(ls |grep mysql-bin |grep -v index);do
num=$(echo $file |cut -d. -f2 )
if [ $num -gt $a ];then
a=$num
fi
done
unset num file
num=1
for file in $(ls |grep mysql-bin |grep -v index);do
num=$(echo $file |cut -d. -f2 )
if [ $num -gt $b -a $num -ne $a ] ; then
b=$num
tmp=$file
fi
done
file1=$(echo $tmp|cut -d. -f1)
file2=$(echo $tmp|cut -d. -f2)
mysqlbinlog $tmp > /mydata/data1/backup/"$file1-$file2.sql"
if [ $? -eq 0 ] ;then
echo "Backup completed,file is "$file1-$file2.sql""
fi
fi
說明:此腳本每七天做一次完全備份,以后每天做一次增量備份,完全備份使用mysqldump客戶端工具,增量備份使用mysqlbinlog備份其二進制日志文件。
相關(guān)文章
mysql服務(wù)器查詢慢原因分析與解決方法小結(jié)
在開發(fā)的朋友特別是和mysql有接觸的朋友會碰到有時mysql查詢很慢,當然我指的是大數(shù)據(jù)量百萬千萬級了,不是幾十條了,下面我們來看看解決查詢慢的辦法2012-04-04
Ubuntu18.0.4下mysql 8.0.20 安裝配置方法圖文教程
這篇文章主要為大家詳細介紹了Ubuntu18.0.4下mysql 8.0.19 安裝配置方法圖文教程,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-05-05
在Mysql數(shù)據(jù)庫里通過存儲過程實現(xiàn)樹形的遍歷
關(guān)于多級別菜單欄或者權(quán)限系統(tǒng)中部門上下級的樹形遍歷,oracle中有connect by來實現(xiàn),mysql沒有這樣的便捷途徑,所以MySQL遍歷數(shù)據(jù)表是我們經(jīng)常會遇到的頭痛問題,下面給大家介紹在Mysql數(shù)據(jù)庫里通過存儲過程實現(xiàn)樹形的遍歷,一起看看吧2016-11-11
MySQL和MySQL驅(qū)動mysql-connector-java升級到8.0.X版本問題
這篇文章主要介紹了MySQL和MySQL驅(qū)動mysql-connector-java升級到8.0.X版本問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02

