rsync远程同步

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了rsync远程同步相关的知识,希望对你有一定的参考价值。

rsync远程同步

rsync主要实现快速、安全、高效的异地备份,并且实现数据同步。


1、配置rsync源服务器A(同步源提供数据的原始位置,发起端读取同步源的数据)

技术分享图片


1)建立/etc/rsyncd.conf配置文件

Vi  /etc/rsyncd.conf



技术分享图片

注意:如果采用匿名同步的方式,只要将其中的auth userssecrets file配置记录去掉就可以了。

 

1)为备份账户创建数据文件

Vi /etc/rsyncd_users.db



技术分享图片

1)启动rsync服务程序


技术分享图片


如果要结束rsync进程,可以执行kill $(cat /var/run/rsyncd.pid)

 

 

2、使用rsync备份工具(在rsync客户机,发起端,服务器B

1)例:将文件/etc/fstab、目录/boot/grub同步备份到/opt目录下(相当于本地备份)



技术分享图片


1)例:将rsync同步源上的网站根目录下载到本地的/root下进行备份(远程备份)

首先要配置防火墙:



技术分享图片


然后确认rsync同步源上的网站根目录:


技术分享图片


最后在rsync客户机上执行备份

 

 

注意: chmod 600 /etc/rsyncd_users.db



技术分享图片


查看/root下有没有网页

技术分享图片



1)例:将源服务器中的wwwroot共享模块(网站根目录),下载到本地的/myweb目录下,

(删除目标位置有而原始位置没有的文件)

首先确认在客户机上的/myweb下只有一个网页(zhongqiu.html

技术分享图片


然后执行备份

技术分享图片


查看在客户机的/myweb

(里面只有同步源服务器上的网页,本地的zhongqiu.html备份删除,因为加了--delete的备份选项)

技术分享图片


1)例:每天晚上22:30对服务器的网站做一次同步

首先创建一个密码文件,保存backuper的密码

技术分享图片



里面内容为:

技术分享图片


然后设置权限,并做计划任务:


技术分享图片

编辑任务计划(crontab  -e


技术分享图片

删除客户机的/myweb下的所有数据


技术分享图片


当前时间为10:50,我把计划任务设置为10:52(设置完需要重新启动crond服务)


技术分享图片

重启服务

时间到了之后查看:


技术分享图片


3、配置rsync+inotify实时同步

作用:将rsync工具与inotify机制相结合,可以实现触发式备份(实时同步),

只要原始位置的文档发生变化,则立即启动增量备份操作。

1)调整inotify内核参数(文件数量较多或者变化较频繁时需要调整,把数值加大)

Vi /etc/sysctl.conf



技术分享图片


 

执行sysctl  -p更新

 

 

1)安装inotify-tools

技术分享图片


然后执行make && make install

 

3)以监控网站目录/var/www/html为例

(当/var/www/html进行增删改查的时候就会动态显示监控信息)



技术分享图片

(编写触发式同步脚本)

实验目标:检测本机/var/www/html目录,一旦有更新就触发rsync的同步操作,

上传备份至服务器192.168.1.7/var/www/html目录下,实现网站同步,保持两个站点的文件一致。

类似于dns的主从复制。

 

首先在同步源上进行操作:(配置ssh源分为四步)

1)创建用户rput

                   useradd rput && passwd rput

2)开启sshd服务

                   [[email protected] html]# service  sshd start

3)允许rput用户登录

Vi /etc/ssh/sshd_config

AllowUsers [email protected]



技术分享图片


3)启用密钥对验证

Vi  /etc/ssh/sshd_config



技术分享图片

配置发起端:(实现实时同步需要使用秘钥对的方式验证身份)

         1)建立秘钥对文件实现无交互式登录(参考远程控制访问系统

         [[email protected] html]# ssh-keygen -t rsa

         创建过程一路回车就可以了

将公钥文件上传至服务器

         [[email protected] html]# scp ~/.ssh/id.rsa.pub [email protected]:/tmp

在服务器中导入公钥文本

Mkdir  -p  /home/rput/.ssh/

Cat /tmp/id_rsa.pub >> /home/rput/.ssh/authorized_keys



技术分享图片


)在发起端安装inofity工具

安装inotify-tools



技术分享图片


然后执行make && make install

 

3)编写触发式同步脚本

Vi /opt/inotify_rsync.sh



技术分享图片

3)执行脚本

设置权限:Chmod  +x  /opt/inotify_rsync.sh

设置开机自动启动:Echo  ‘/opt/inotify_rsync.sh’>> /etc/rc.local

执行脚本sh /opt/inotify_rsync.sh

 

注意:如果同步失败,在服务器上把/var/www/html目录设置为所有人写入权限。

Chmod -R 777 /var/www/html

 

4)清空客户端/var/www/html中的网页(方便测试)

技术分享图片


3)/var/www/html中添加网页a.html


技术分享图片


3)在服务器192.168.1.7上查看/var/www/html中有没有a.html (如果有代表同步正常)


技术分享图片

至此安装和配置完成rsync远程同步系统

以上是关于rsync远程同步的主要内容,如果未能解决你的问题,请参考以下文章

rsync远程同步(定期同步实时同步)

Linux 远程同步:rsync

rsync远程同步

远程同步命令-rsync

rsync远程同步:下行同步上行同步+inotify实时同步

rsync 远程同步部署 上行下行同步