1. 程式人生 > >mysqldump備份指定mysql數據庫腳本

mysqldump備份指定mysql數據庫腳本

mysql 備份 腳本 mysqldump

前幾天有朋友讓幫忙寫一個mysql數據備份腳本,於是就有了下文通過mysqldump命令備份數據庫的腳本,貼出來跟大家交流,若有問題,請指正,謝謝。

實現功能:

1 備份指定的數據庫

2 刪除指定天數前的備份文件,默認設定了7天

#!/bin/bash
#
# 文件名:mysql_bak.sh
#
#數據庫備份文件的目錄,若沒有請創建目錄或指定備份目錄
BACKUP_DIR="/bak/mysqlbak"
#指定mysql所在主機的主機名
DB_HOSTNAME=‘hostname‘
#指定mysql登錄用戶名
DB_USERNAME=‘backupuser‘
#指定mysql登錄密碼
DB_PASSWORD=‘password‘
#指定備份的數據庫名
DB_NAME="dbname"
#定義當前日期為變量
CURRENT_DATE=$(date +"%Y%m%d$H")
#定義刪除N天前的文件變量
DEL_DAYS_BEFORE_FILES=7
#指定mysqldump所在目錄
MYSQLDUMP_DIR="/usr/bin"
#備份指定數據庫
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


關於mysql備份腳本的使用說明:

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

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

>CREATE USER [email protected]%‘ IDENTIFIED BY ‘password‘;

>GRANT SELECT,LOCK TABLES,FILE,RELOAD ON *.* TO [email protected]%‘;

(個人認為這些權限足夠了,若不夠自行添加)

3 註意需要在腳本中指定數據庫備份目錄

4 賦予腳本執行權限

$chmod +x mysql_bak.sh

5 創建定時任務,比如每天淩晨兩點執行備份操作

Redhat下操作

$crontab -e

# $PWD是指備份腳本所在路徑

# $BACKUP_DIR是指數據庫備份目錄

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

註意:運行腳本用戶對所操作目錄的權限設置。


本文出自 “菜鳥 Roger” 博客,請務必保留此出處http://rogerwang.blog.51cto.com/5326353/1948955

mysqldump備份指定mysql數據庫腳本