Linux-rsync远程同步

Rsync一款快速增量备份工具
Remote Sync,远程同步,实现快速、安全、高效的异地备份,并且实现数据同步。
支持本地复制,或者与其他SSH、rsync主机同步
----在远程同步任务中,负责发起rsync同步操作的客户机被称为发起端,而负责相应来自客户机的rsync同步操作的服务器成为同步源。----在同步过程中,同步源负责提供文档的原始位置,发起段应对该位置具有读取权限。
----rsync作为同步源时以守护进程运行,为其他客户机提供备份原。配置rsync同步源需要建立配置文件rsyncd。conf,创建备份账号,然后将rsync程序以“–daemon”选项运行。

  1. 配置rsync源服务器A(同步源提供数据的原始位置,发起端读取同步源的数据)
    Linux-rsync远程同步_第1张图片
    1)建立/etc/rsyncd.conf配置文件
    Vi /etc/rsyncd.conf!
    Linux-rsync远程同步_第2张图片
    注意:如果采用匿名同步的方式,只要将其中的auth users和secrets file配置记录去掉就可以了。
    为备份账户创建数据文件Vi /etc/rsyncd_users.db
    Linux-rsync远程同步_第3张图片
    启动rsync服务程序
    Linux-rsync远程同步_第4张图片
    如果要结束rsync进程,可以执行kill $(cat /var/run/rsyncd.pid)
    2、使用rsync备份工具(在rsync客户机,发起端,服务器B)
    1)例:将文件/etc/fstab、目录/boot/grub同步备份到/opt目录下(相当于本地备份)
    Linux-rsync远程同步_第5张图片
    1)例:将rsync同步源上的网站根目录下载到本地的/root下进行备份(远程备份)首先要配置防火墙:
    Linux-rsync远程同步_第6张图片
    然后确认rsync同步源上的网站根目录:

Linux-rsync远程同步_第7张图片
最后在rsync客户机上执行备份
注意: chmod 600 /etc/rsyncd_users.db
Linux-rsync远程同步_第8张图片
查看/root下有没有网页
Linux-rsync远程同步_第9张图片
例:将源服务器中的wwwroot共享模块(网站根目录),下载到本地的/myweb目录下,(删除目标位置有而原始位置没有的文件)首先确认在客户机上的/myweb下只有一个网页(zhongqiu.html)
Linux-rsync远程同步_第10张图片
然后执行备份
Linux-rsync远程同步_第11张图片
查看在客户机的/myweb(里面只有同步源服务器上的网页,本地的zhongqiu.html备份删除,因为加了–delete的备份选项)
Linux-rsync远程同步_第12张图片
1)例:每天晚上22:30对服务器的网站做一次同步首先创建一个密码文件,保存backuper的密码
Linux-rsync远程同步_第13张图片
里面内容为:
Linux-rsync远程同步_第14张图片
然后设置权限,并做计划任务:
Linux-rsync远程同步_第15张图片
编辑任务计划(crontab -e)
Linux-rsync远程同步_第16张图片
删除客户机的/myweb下的所有数据
Linux-rsync远程同步_第17张图片
当前时间为10:50,我把计划任务设置为10:52(设置完需要重新启动crond服务)
在这里插入图片描述
时间到了之后查看:
Linux-rsync远程同步_第18张图片
3、配置rsync+inotify实时同步作用:将rsync工具与inotify机制相结合,可以实现触发式备份(实时同步),只要原始位置的文档发生变化,则立即启动增量备份操作。
1)调整inotify内核参数(文件数量较多或者变化较频繁时需要调整,把数值加大)Vi /etc/sysctl.conf
Linux-rsync远程同步_第19张图片
执行sysctl -p更新
1)安装inotify-tools(软件到ftp或本机上找)
在这里插入图片描述
然后执行make && make install 3)以监控网站目录/var/www/html为例(当/var/www/html进行增删改查的时候就会动态显示监控信息)
Linux-rsync远程同步_第20张图片
4、综合实验(编写触发式同步脚本)实验目标:检测本机/var/www/html目录,一旦有更新就触发rsync的同步操作,上传备份至服务器192.168.1.7的/var/www/html目录下,实现网站同步,保持两个站点的文件一致。类似于dns的主从复制。 首先在同步源上进行操作:(配置ssh源分为四步)
1)创建用户rput useradd rput && passwd rput2)开启sshd服务 [root@web html]# service sshd start3)允许rput用户登录Vi /etc/ssh/sshd_configAllowUsers [email protected]
Linux-rsync远程同步_第21张图片
3)启用密钥对验证Vi /etc/ssh/sshd_config
Linux-rsync远程同步_第22张图片
配置发起端:(实现实时同步需要使用秘钥对的方式验证身份) 1)建立秘钥对文件实现无交互式登录() [root@web html]# ssh-keygen -t rsa
创建过程一路回车就可以了
将公钥文件上传至服务器
[root@web html]# scp ~/.ssh/id.rsa.pub [email protected]:/tmp
在服务器中导入公钥文本
Mkdir -p /home/rput/.ssh/Cat /tmp/id_rsa.pub >> /home/rput/.ssh/authorized_keys
Linux-rsync远程同步_第23张图片
在发起端安装inofity工具安装inotify-tools
在这里插入图片描述
然后执行make && make install 3)编写触发式同步脚本Vi /opt/inotify_rsync.sh
Linux-rsync远程同步_第24张图片
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中的网页(方便测试)
Linux-rsync远程同步_第25张图片
在/var/www/html中添加网页a.html
Linux-rsync远程同步_第26张图片
在服务器192.168.1.7上查看/var/www/html中有没有a.html (如果有代表同步正常)
Linux-rsync远程同步_第27张图片

你可能感兴趣的:(Linux)