目的:

将172.28.131.100,与172.27.119.201中的/opt/data_backup/下的数据每天凌晨三点定时增量备份到172.28.131.116上面。

实现:

要想实现这个目的,我们要用到rsync进行传输数据。
rsync的好处:
rsync它原本是在Linux系统下面的一个文件同步协议,随着技术的发展,它也有其它版本的,如Windows和AIX、HPUX下面都有相应的版本 可以支持的。Rsync这个同步工具的好处在于完全命令行下面的操作,有详细的日志文件,同时也能支持多种不同情况下的更新,例如备份式更新等,还有一个 非常好的地方是,它和服务器之间可以互相同步,即可以从服务器上更新文件下来,也可以把本地的文件提交到服务器上面去。只要你配置的参数是正确的,就能完成这样的工作。

首先要确定三台服务器上面都有rsync工具:

ps -ef | grep rsync

系统一般会默认安装,如果没有那么就需要自己 yum -y install rsync安装

因为我们拉取172.28.131.100中的数据要使用daemon模式,需要用到配置文件去添加模块,但是rsync默认是没有配置文件的,所以我们需要手动去服务端172.28.131.100中创建配置文件/etc/rsyncd.conf。

/etc/rsyncd.conf中内容如下:

#global settings
  pid file=/var/rsync/rsync.pid
  port=873
  lock file=/var/rsync/lock.log
  log file=/var/rsync/rsync.log
   
  [mysql]
  path=/opt/data_backup
  use chroot=no
  max connections=10
  read only=yes
  write only=no
  list=no
  uid=root
  gid=root
  auth users=root
  secrets file=/etc/rsync_server.pas
  strict modes=yes
  hosts allow=172.28.131.166
  hosts deny=*
  ignore errors=yes
  timeout=120 #秒

[mysql] :模块名,自己定义,可以在下方添加其它模块。须与客户端执行命令中的模块名一致。
path:要备份的服务端文件夹路径。
hosts allow:允许的客户端连接IP。
secrets file:服务端密码文件,内容格式为,用户名:密码。
auth users:有权限的用户名,与密码文件中用户名一致。!!

服务端创建一个密码文件(内容格式为:用户名:密码):
vi /etc/rsync_server.pas(用户名是配置文件中写的,密码是与这个用户名对应的。)

然后设置密码文件的权限为600

启动rsync

/usr/bin/rsync --daemon --config=/etc/rsyncd.conf

我们来到客户端172.28.131.166创建客户端密码文件/etc/rsync_client.pas,内容只有密码,密码跟服务端中一样
同样设置权限为600

然后添加定时任务:

30 19 * * * /usr/bin/rsync -aqzrtopg --delete rsync://root@172.28.131.100/mysql /opt/data_backup100/ --password-file=/etc/rsync_client.pas

接下来我们来备份172.27.119.201的数据,因为这台服务器是使用私钥登陆的,所以我们不能再用daemon模式进行备份。
直接在客户端查询公钥,然后复制到服务端~/.ssh/authorized_keys文件里面实现免密登陆。
然后在客户端直接设置拉取数据的定时任务:

40 19 * * * /usr/bin/rsync -aqzrtopg --delete  -e "ssh" 172.27.119.201:/opt/data_backup/ /opt/data_backup201/