[MySQL] shell脚本备份mysql里面所有数据库到远程服务器

本地数据库mysql,有多个数据库要备份到远程服务器上,远程服务器提供vsftp服务

1 - 创建一个shell脚本,写入以下内容并保存

vi.mysql_back.sh

写入

#!/bin/bash

BIN_DIR="/usr/bin"
BACKUP_DIR="/var/mysql_dump/data"
DATE=`date +%Y%m%d`
mkdir -p $BACKUP_DIR

MYSQL=mysql
HOST="10.XXX.XX.XX"
USER="user"
PASSWORD="password"




# 获取本地服务器IP地址

local_ip=$(ifconfig | grep "inet addr" | grep -v 127.0.0.1 | awk '{print $2}' | awk -F ':' '{print $2}')




# 查看mysql里面所有数据库名

command="show databases"
declare DBS=`$MYSQL -h${HOST} -u${USER} -p${PASSWORD} -e "${command}" --skip-column-name`
for DB_NAME in $DBS
do
        if [ "$DB_NAME" != "information_schema" ] && [ "$DB_NAME" != "mysql" ] && [ "$DB_NAME" != "performance_schema" ] && [ "$DB_NAME" != "tower_debug21" ]
        then
        #echo "$DB_NAME"

        # mysqldump出每个数据库的备份,并压缩
        $BIN_DIR/mysqldump --opt -u$USER -p$PASSWORD $DB_NAME | gzip > $BACKUP_DIR/$DB_NAME.dump_$DATE.sql.gz
        fi
done




# 上传到远程ftp 

ftp -n<<!
open 10.XXX.XX.XXX    
user ftpuser ******           
binary
hash
cd backups/database/$local_ip/
lcd $BACKUP_DIR                     
prompt
mput *.sql.gz

close
bye
!

rm -rf $BACKUP_DIR/*



2 - 修改属性为可执行

chmod 755 mysql_back.sh


3 - crond定时任务每天00:00:00定时执行

0 0 * * * /var/mysql_dump/mysql_back.sh > /dev/null 2>&1


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值