MySQL 定時備份數據

環境:
Centos7、MySQL 5.6 (Docker 安裝)
需求:
實現每小時備份指定的數據庫到本地及遠程機器

1.shell腳本

#docker 安裝Mysql時指定的容器名稱
DOCKERNAME=mymysql
#備份的目錄
BAKDIR=/data/backup/mysql/`date +%Y-%m-%d-%H`
#備份指定的數據庫名稱
MYSQLDB=cbec 
#數據庫連接密碼
MYSQLPW=Qwe123456.
#數據庫用戶名
MYSQLUSR=root
#數據庫服務地址
MYSQLHOST=localhost
#數據庫端口號
PORT=3306

if
 
  [ $UID -ne 0 ];then
 
  echo This script must use the root user ! ! !
 
  sleep 2
 
  exit 0
 
fi
 
#Define DIR and mkdir DIR 判斷目錄是否存在,不存在則新建
 
if
 
  [ ! -d $BAKDIR ];then
 
  mkdir -p $BAKDIR
 
else
 
  echo This is $BAKDIR exists....
 
fi
 
#執行備份操作
#非docker安裝執行這條 mysqldump -u$MYSQLUSR -P$PORT -p$MYSQLPW  -h$MYSQLHOST --default-character-set=utf8  $MYSQLDB >$BAKDIR/$MYSQLDB.sql
docker exec -it $DOCKERNAME  mysqldump -u$MYSQLUSR -P$PORT -p$MYSQLPW  -h$MYSQLHOST --default-character-set=utf8  $MYSQLDB >$BAKDIR/$MYSQLDB.sql

#將備份sql文件複製到遠程機器(可選)注意這個操作是需要遠程密碼才能執行的,[使用ssh代替密碼登錄](https://blog.csdn.net/xyang81/article/details/51477925)
scp -r $BAKDIR [email protected]:/data/backup/mysql
 
cd $BAKDIR ; tar -czf  $MYSQLDB.tar.gz *.sql
 
 
find  . -type f -name \*.sql |xargs rm -rf
 

[ $? -eq 0 ]&&echo “This `date +%Y-%m-%d` MySQL BACKUP is SUCCESS”
 
cd /data/backup/mysql/ ;find .  -type d  -mtime +30 |xargs rm -rf
 
echo "The mysql backup successfully "


執行腳本:

//添加可執行權限
chmod +x bakupmysql.sh 
//執行
./bakupmysql.sh 

2.編寫定時任務

輸入crontab -e 添加定時任務,按 i 進入編輯模式,輸入:0 */1 * * * /bin/sh /sh/bakupmysql.sh 。保存退出,先按Esc然後輸入:wq,最後回車。
最後再靜靜觀察結果,每小時備份一次

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章