備份mysql多個數據庫的shell腳本

需求: 一臺linux服務器上數據庫有多個數據庫,需要每天備份一次,防止意外發生,記錄一下估計以後還會用到

#! /bin/bash
# MySQL用戶
user="root"
# MySQL密碼
userPWD="mima"
# 需要定時備份的數據表列表
dbNames=(db1 db2 db3)
# 每次的備份數據以日期創建文件夾存放,同時刪除過期備份
# 此處以保留1個月的備份數據爲例
DATE=`date -d "now" +%Y%m%d%H`
ODATE=`date -d "-1 month" +%Y%m%d%H`
newdir=/opt/data/backup/$DATE
olddir=/opt/data/backup/$ODATE
# 刪除過期備份數據
if [ -d $olddir ];
  then
    rm -rf $olddir
fi
# 創建新備份文件夾
mkdir $newdir
# 對備份數據庫列表的所有數據庫備份
for dbName in ${dbNames[*]}
do
  dumpFile=$dbName-$DATE.sql.gz
  mysqldump -u$user -p$userPWD $dbName | gzip > $newdir/$dumpFile
done

需要注意的就是該給的權限要給,然後執行一次線跑一下,看看是否成功

輸入命令crontab -e 編輯crontab腳本,編輯完成後保存退出

0 1 * * * /opt/data/backup.sh     我定的凌晨1點執行一次

service crond restart 重新啓動服務即可

然後第二天記得檢查是否成功執行備份操作。



 

 

 

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