ubuntu16.04 腳本備份mysql數據庫

 

創建保存備份文件的目錄:/home/lp01/mysql_data

sudo mkdir mysql_data

創建腳本文件

touch mysql_databak.sh

備份單個數據庫

#!/bin/bash

DATE=`date +%Y%m%d%H%M`		#獲取當前系統的時間,注意:date寫法
DUMP=/usr/bin/mysqldump		#mysqldump備份程序執行路徑
OUT_DIR=/home/lp01/mysql_data/	#備份文件存放路徑
LINUX_USER=root			#系統用戶名
DB_NAME=blog    	    #要備份的數據庫名字
DB_USER=root			#數據庫賬號 注意:非root用戶要使用備份參數 --skip-lock-tables,否則可能會報錯
DB_PASS=123456			#數據庫密碼
DAYS=7				#DAYS=7代表要刪除7天前的備份,即只保留最近7天的備份
cd $OUT_DIR			#進入備份存放的目錄
OUT_SQL=$DATE.sql		#備份數據庫的文件名
TAR_SQL="mysqldata_bak_$DATE.tar.gz" #最終保存的數據庫備份文件名
$DUMP -u$DB_USER -p$DB_PASS $DB_NAME --default-character-set=gbk --opt -Q -R --skip-lock-tables>$OUT_SQL	#執行備份命令
tar -czf $TAR_SQL ./$OUT_SQL	#壓縮爲備份數據庫文件爲.tar.gz格式
rm $OUT_SQL			#刪除.sql格式的備份文件
chown $LINUX_USER:$LINUX_USER $OUT_DIR/$TAR_SQL  #更改備份數據庫文件的所有者
find $OUT_DIR -name "mysqldata_bak*" -type f -mtime +$DAYS -exec rm {} \; #刪除7天前的備份文件,注意:{} ;中間有空格:wq 保存退出

備份多個數據庫,並打包一個文件夾壓縮包

#!/bin/bash

DATE=`date +%Y%m%d%H%M`		#獲取當前系統的時間,注意:date寫法
DUMP=/usr/bin/mysqldump		#mysqldump備份程序執行路徑
BASE_DIR=/home/lp01/Desktop/ 	#備份文件存放路徑
OUT_DIR="mysqldata_bak_$DATE" 	#備份數據庫存放路徑
LINUX_USER=root			#系統用戶名
DB_NAMES=(blog mysql)		#要備份的數據庫名字
DB_USER=root			#數據庫賬號 注意:非root用戶要使用備份參數 --skip-lock-tables,否則可能會報錯
DB_PASS=123456			#數據庫密碼
DAYS=7				#DAYS=7代表要刪除7天前的備份,即只保留最近7天的備份
cd $BASE_DIR			#進入備份文件存放的目錄
mkdir $OUT_DIR && cd $OUT_DIR	#創建並進入備份數據庫目錄
for DB_NAME in ${DB_NAMES[*]}
do
  OUT_SQL=$DB_NAME.sql		#備份數據庫的文件名
  $DUMP -u$DB_USER -p$DB_PASS $DB_NAME --default-character-set=gbk --opt -Q -R --skip-lock-tables>$OUT_SQL	#執行備份命令
done
cd $BASE_DIR			#進入備份文件存放的目錄
TAR_DIR="$OUT_DIR.tar.gz"       #最終保存的數據庫備份文件名
tar -zcvf $TAR_DIR $OUT_DIR		#壓縮爲備份數據庫文件爲.tar.gz格式
rm -rf $OUT_DIR			#刪除.sql格式的備份文件
find $BASE_DIR -name "mysqldata_bak*" -type f -mtime +$DAYS -exec rm {} \; #刪除7天前的備份文件,注意:{} ;中間有空格:wq 保存退出

修改文件屬性,使其可執行

sudo chmod 777 /home/mysql_data/mysql_databak.sh

OK.

 

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