定时将远程服务器数据库备份到本地服务器

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


猜你喜欢

转载自blog.51cto.com/suyanzhu/2391386