rsync mysql_使用rsync进行MySQL增量备份

mysql_back.sh脚本中的相关参数解释。expect -c中的-c全拼为command命令的含义,也就是说-c 后面跟的是相关的命令,但这些命令要

一、环境描述(使用rsync进行mysql的增量备份)

192.168.0.2为备份服务器

192.168.0.3为需要经常备份的mysql数据库

二、主要配置

1.备份服务器配置

useradd mysql_db -d /data/bak

passwd rsync_server

#密码我配置的为“123”

2.mysql服务器配置

vi mysql_back.sh

export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

binlog_dir=/data/mysql/3306/logs

#delete old binlog FileList

if [ -f $binlog_dir/mysql-bin.index ];then

rm -f $binlog_dir/mysql-bin.index

fi

passwd="123"

ls -l $binlog_dir |grep mysql-bin| awk '{print $8}' >/data/mysql/3306/logs/binlog/mysql-bin.index

Rsync_exec(){

expect -c "

set timeout 600;

spawn rsync -rpogtv --progress --files-from=$binlog_dir/binlog/mysql-bin.index $binlog_dir mysql_db@192.168.0.2:/data/bak

expect {

\"*yes/no*\" {send \"yes\r\";exp_continue}

\"*password*\" {send \"$passwd\r\";}

}

expect eof;"

}

Rsync_exec

3.赋予mysql_back.sh可执行的权利,添加计划任务即可使用。

//mysql_back.sh脚本中的相关参数解释。expect -c中的-c全拼为command命令的含义,也就是说-c 后面跟的是相关的命令,但这些命令要用" "引起来。set timeout设置了脚本的超时为600秒,spawn为运行系统命令的开始模式。rsync -rpogtv中r表示递归进入目录,p表示保留文件原来的权限,o表示保留文件原来的拥有者,g表示保留文件原来的所属组,,t表示保留文件原来创建或修改后的时间,v表示增加冗长信息,--progress表示显示rsync的过程,--files-from表示从哪里获取需要进行rsync的文件。expect 在这里使用的目的是为了避免交互式,其中\"*yes/no*\"两端的\为其后面跟着的"的转义符,*为任意匹配,eof表示程序的结束。

logo.gif

f68f2add0b68e4f9810432fce46917b7.png

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值