溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

mysqldump備份指定mysql數(shù)據(jù)庫(kù)腳本

發(fā)布時(shí)間:2020-07-05 17:43:26 來源:網(wǎng)絡(luò) 閱讀:1027 作者:菜鳥點(diǎn)滴 欄目:MySQL數(shù)據(jù)庫(kù)

    前幾天有朋友讓幫忙寫一個(gè)mysql數(shù)據(jù)備份腳本,于是就有了下文通過mysqldump命令備份數(shù)據(jù)庫(kù)的腳本,貼出來跟大家交流,若有問題,請(qǐng)指正,謝謝。

    實(shí)現(xiàn)功能:

      1 備份指定的數(shù)據(jù)庫(kù)

      2 刪除指定天數(shù)前的備份文件,默認(rèn)設(shè)定了7天

#!/bin/bash
#
# 文件名:mysql_bak.sh
#
#數(shù)據(jù)庫(kù)備份文件的目錄,若沒有請(qǐng)創(chuàng)建目錄或指定備份目錄
BACKUP_DIR="/bak/mysqlbak"
#指定mysql所在主機(jī)的主機(jī)名
DB_HOSTNAME='hostname'
#指定mysql登錄用戶名
DB_USERNAME='backupuser'
#指定mysql登錄密碼
DB_PASSWORD='password'
#指定備份的數(shù)據(jù)庫(kù)名
DB_NAME="dbname"
#定義當(dāng)前日期為變量
CURRENT_DATE=$(date +"%Y%m%d$H")
#定義刪除N天前的文件變量
DEL_DAYS_BEFORE_FILES=7
#指定mysqldump所在目錄
MYSQLDUMP_DIR="/usr/bin"
#備份指定數(shù)據(jù)庫(kù)
if $($MYSQLDUMP_DIR/mysqldump -h ${DB_HOSTNAME} -u${DB_USERNAME} -p${DB_PASSWORD} ${DB_NAME} > "${BACKUP_DIR}/${DB_NAME}_${CURRENT_DATE}.sql");then
cd ${BACKUP_DIR}
gzip ${DB_NAME}_${CURRENT_DATE}.sql
echo "${CURRENT_DATE}--Backup database ${DB_NAME} successfully!"
else
echo "${CURRENT_DATE}--Backup database ${DB_NAME} unsuccessfully"
fi
#刪除指定N天前的備份文件
find ${BACKUP_DIR} -name "${DB_NAME}_*.sql.gz" -type f -mtime +${DEL_DAYS_BEFORE_FILES} -exec rm {} \; > /dev/null 2>&1


關(guān)于mysql備份腳本的使用說明:

   1 備份操作是使用mysqldump命令完成,默認(rèn)設(shè)置保留近7天備份文件

   2 建議創(chuàng)建備份使用的用戶 backupuser(host字段建議指定IP)

       >CREATE USER 'backupuser'@'%' IDENTIFIED BY 'password';

       >GRANT SELECT,LOCK TABLES,FILE,RELOAD ON *.* TO 'backupuser'@'%';

       (個(gè)人認(rèn)為這些權(quán)限足夠了,若不夠自行添加)

   3 注意需要在腳本中指定數(shù)據(jù)庫(kù)備份目錄

   4 賦予腳本執(zhí)行權(quán)限

       $chmod +x mysql_bak.sh

   5 創(chuàng)建定時(shí)任務(wù),比如每天凌晨?jī)牲c(diǎn)執(zhí)行備份操作

      Redhat下操作

      $crontab -e 

      # $PWD是指?jìng)浞菽_本所在路徑

      # $BACKUP_DIR是指數(shù)據(jù)庫(kù)備份目錄

          * 2 * * * $PWD/mysql_bak.sh &> $BACKUP_DIR/mysql_bak.log

注意:運(yùn)行腳本用戶對(duì)所操作目錄的權(quán)限設(shè)置。


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI