1.腳本名稱
pro_bkdb.sh
2.腳本內容
#!/bin/bash
## 需要備份數據庫服務信息
# 用戶中心數據庫
FROM_DB_NAME1="xx"
FROM_DB_NAME2="xx"
FROM_DB_NAME3="xx"
FROM_DB_NAME4="xx"
FROM_DB_USER="root"
FROM_DB_PASS="xx"
## 存儲備份數據的服務器信息
TARGET_BACKUP_DIR="/home/backup"
# 判斷備份路徑是否存在,不存在則創建該路徑
if [ ! -d $BACKUP_DIR ];then
mkdir -p "$BACKUP_DIR"
fi
# 進入備份目錄
cd "$TARGET_BACKUP_DIR"
# 文件名
DUMPFILE1="$FROM_DB_NAME1-$(date +%Y%m%d_%H%M%S).sql.gz"
DUMPFILE2="$FROM_DB_NAME2-$(date +%Y%m%d_%H%M%S).sql.gz"
DUMPFILE3="$FROM_DB_NAME3-$(date +%Y%m%d_%H%M%S).sql.gz"
DUMPFILE4="$FROM_DB_NAME4-$(date +%Y%m%d_%H%M%S).sql.gz"
# 備份xx數據庫
mysqldump -h 數據庫IP地址 -u$FROM_DB_USER -p$FROM_DB_PASS $FROM_DB_NAME1 | gzip > $DUMPFILE1
if [[ $? == 0 ]];then
echo "$FROM_DB_NAME1 backup success"
else
echo "$FROM_DB_NAME1 backup fail!"
fi
# xx數據庫
mysqldump -h 數據庫IP地址 -u$FROM_DB_USER -p$FROM_DB_PASS $FROM_DB_NAME4 | gzip > $DUMPFILE4
if [[ $? == 0 ]];then
echo "$FROM_DB_NAME4 backup success"
else
echo "$FROM_DB_NAME4 backup fail!"
fi
# xx數據庫
mysqldump -h 數據庫IP地址 -u$FROM_DB_USER -p$FROM_DB_PASS $FROM_DB_NAME2 | gzip > $DUMPFILE2
if [[ $? == 0 ]];then
echo "$FROM_DB_NAME2 backup success"
else
echo "$FROM_DB_NAME2 backup fail!"
fi
# xx數據庫
mysqldump -h 數據庫IP地址 -u$FROM_DB_USER -p$FROM_DB_PASS $FROM_DB_NAME3 | gzip > $DUMPFILE3
if [[ $? == 0 ]];then
echo "$FROM_DB_NAME3 backup success"
else
echo "$FROM_DB_NAME3 backup fail!"
fi
# 刪除7天前的數據
do_delete()
{
DELFILES=`find $TARGET_BACKUP_DIR -mtime +7 -type f -exec ls {} \;`
#DELFILES=`find $TARGET_BACKUP_DIR -mmin +2 -type f -exec ls {} \;`
for delfile in ${DELFILES}
do
rm -rf $delfile
echo "delete success"
done
}
do_delete
3.開啓定時任務
vi /etc/crontab
# 添加如下命令,說明:每天1時0分進行數據庫備份操作
00 01 * * * root /home/pro_bkdb.sh
# crontab服務狀態控制可以通過如下命令進行查看和操作
/sbin/service crond start //啓動服務
/sbin/service crond stop //關閉服務
/sbin/service crond restart //重啓服務
/sbin/service crond reload //重新載入配置
/sbin/service crond status //查看狀態
或
service crond start
service crond stop
service crond restart
service crond reload
service crond status