mysql linux上数据备份的脚本

具体脚本如下

 

#!/bin/bash
#writer: ci

#需要免密登录

#MYSQLHOST=数据库IP
#MYSQLPASS=数据库密码(默认为root用户的)
#!/bin/bash
#writer: ci
#BACKUPDIR=本地备份文件存放路径
#REMOTE_HOST=备份文件远程存放IP
#REMOTE_DIR=备份文件远程存放路径
#LOCAL_BACKUP_FILE_NUMBER=本地备份文件存放数量
#REMOTE_BACKUP_FILE_NUMBER=远程备份文件存放数量


MYSQLHOST=localhost
MYSQLPASS=Password@123
BACKUPDIR=/data01/BACKUP
REMOTE_HOST=cluster003
REMOTE_DIR=/data01/BACKUP/MYSQL-CLUSTER001
LOCAL_BACKUP_FILE_NUMBER=5
REMOTE_BACKUP_FILE_NUMBER=7

DAY=$(/usr/bin/date +%Y%m%d%H%M%S)
FILENAME=MariaDB-${DAY}.sql
BACKUP_FILE_PATH=${BACKUPDIR}/${FILENAME}

MYSQLDUMP=/usr/bin/mysqldump

if [ -d ${BACKUPDIR} ] && [ -w ${BACKUPDIR} ]
then
    echo 'The database backup process is starting ......'

    ${MYSQLDUMP} --force --default-character-set=utf8 --all-databases -u${MYSQLUSER-root} -p${MYSQLPASS} > ${BACKUP_FILE_PATH}

    RESULT=${?}
    if [ ${RESULT} -ne 0 ]
    then
        echo
        echo 'ERROR: Backup abnormal !'
        exit "${RESULT}"
    fi

    echo 'Database backup complete !'
    echo 'File path: '${BACKUP_FILE_PATH}''

    echo 'Clean up old local files ......'
    cd ${BACKUPDIR} && ls|sort -r|sed -n '1,'${LOCAL_BACKUP_FILE_NUMBER}'!p'|xargs -i rm -fv {}
    echo 'Clean up the complete!'
else
    echo 'ERROR: The directory "'${BACKUPDIR}'" is not writable or does not exist !'
    exit 1
fi

RSYNC=/usr/bin/rsync

echo 'Backup files are synchronized to remote ......'

${RSYNC} -avP ${BACKUP_FILE_PATH} ${REMOTEUSER-root}@${REMOTE_HOST}:${REMOTE_DIR}/

RESULT=${?}
if [ ${RESULT} -ne 0 ]
then
    echo
    echo 'ERROR: Synchronize failure !'
    echo 'Check to see if you have configured login using SSH keys !'
    echo "${RESULT}"
fi
echo 'Complete synchronously !'
echo 'Remote backup path: '${REMOTE_HOST}':'${REMOTE_DIR}'/'${FILENAME}''

echo 'Clean up old remote files ......'
ssh ${REMOTE_HOST} "cd ${REMOTE_DIR} && ls|sort -r|sed -n '1,'${REMOTE_BACKUP_FILE_NUMBER}'!p'|xargs -i rm -fv {}"
echo 'Clean up the complete!'

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值