mysql异地备份

两台服务器需要单向免密

ssh-keygen -t rsa
然后一直回车 
cd /root/.ssh
ssh-copy-id -i id_rsa.pub user@ip(对方ip和user)

数据库的异地备份

#!/bin/bash

Date=$(date +%Y%m%d)
Time=$(date +%Y-%m-%d\ %H:%M)

## mysql info
mysql_user='root'
mysql_passwd='mysql_passwd'
dbname='dbname'
tbname='tbl_user_info'

## ip info
user='root'
ip='ip'

## tmp dump dir
tmp_dir="/tmp/$Date$RANDOM/"
SQL_file=$tmp_dir$tbname\_$Date.sql
mkdir -p $tmp_dir

## backup dir
Dir="/tmp/pjl_test"

## save strategy script name 
script_name="save_strategy.sh"

## backup  table 
mysqldump -u$mysql_user -p$mysql_passwd $dbname $tbname  >$SQL_file  2>/dev/null

## scp the table
scp $SQL_file $user@$ip:$Dir >/dev/null 2>&1

if [[ $? -eq 0 ]];then
   echo -e " $Time\n mysql table $tbname Backup Succeeded"
else
   echo -e " $Time\n mysql table $tbname Backup Failed"
fi

rm -rf $tmp_dir

## run the script
ssh $user@$ip "cd $Dir;bash $script_name" >/dev/null 2>&1
if [[ $? -eq 0 ]];then
   echo -e " Run $script_name Succeeded \n"
else
   echo -e " Run $script_name Failed \n" 
fi

数据保留一个月
save_strategy.sh

#!/bin/bash

Date=$(date  +%Y%m%d --date '1 month ago')

for i in `find . -name "*.sql"`;do
    T=$(echo $i |awk -F '_' '{print $4}' |awk -F '.' '{print $1}')
    if [[ $Date -gt $T ]];then
       rm -rf $i  > /dev/null 2>&1
    fi
done
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值