rsync 数据同步服务器

rsync简介

 是一个 Unix/linux 系统下的文件同步和传输工具

Rsync 通过“rsync 算法”提供了一个客户机和远程服务器的文件同步的快速方法

特性

可以镜像保存整个目录树和文件系统

可以很容易做到保持原来文件的权限、时间、软硬链接

优点

快速

  • 第一次同步时 rsync 会复制全部内容,但在下一次只传输修改过的文件

压缩传输

  • rsync 在传输数据的过程中可以实行压缩及解压缩操作,因此可以使用更少的带宽

安全

  • 可以使用 ssh 协议来传输文件

支持匿名传输

  • 以方便进行网站镜象

选择性保持

  • 符号连接,硬链接,文件属性,权限,时间等,传输前执行压缩,因此非常适用于异地备份、镜像服务器等应用

备份分类

完整备份

  • 每次备份都是从备份源将所有的文件或目录备份到目的地

差异备份

  • 备份上次完全备份以后有变化的数据

增量备份

  • 备份上次备份以后有变化的数据

运行模式

C/S模式

端口号

873

配置rsync数据同步(push)

负责发起rsync同步操作的主机称为发起端

负责响应rsync同步操作的主机称为 rsync 服务器(也称为同步源)

实验

前期准备

安装对应软件包

  • yum -y install rsync

• 发起端与同步源端都需要安装

实验一:简单数据同步

在同步源端创建对应用户进行数据同步

  • useradd bak
    echo "123456" | passwd --stdin bak

创建备份数据存放目录

  • mkdir /date

• 查看该文件权限为root,bak无权限进行相关操作

• chown bak.bak /date/

实现将服务端的/opt下的数据备份到同步源端的/date下

  • rsync -avz --delete /opt/ bak@192.168.1.33:/date
    输入密码,输入正确后便可进行传送

• -a, --archive archive mode 权限保存模式,相当于 -rlptgoD 参数,存档,递归,保持属性等

• -r, --recursive 复制所有下面的资料,递归处理

• p, --perms 保留档案权限 ,文件原有属性

• -t, --times 保留时间点,文件原有时间

• -g, --group 保留原有属组

• -o, --owner 保留档案所有者(root only)

• -D, --devices 保留 device 资讯(root only)

• -l, --links 复制所有的连接 ,拷贝连接文件

• -z, --compress 压缩模式, 当资料在传送到目的端进行档案压缩

• -H, --hard-links 保留硬链接文件

• -A, --acls 保留 ACL 属性文件,需要配合--perms

• -v , --verbose 复杂的输出信息

• --delete, 删除那些目标位置有的文件而备份源没有的文件

  • 查看备份端数据,成功备

现在在服务端新建一个文件,测试推送方式

  • 创建文件123
  • 再次执行命令rsync -avz --delete /opt/ bak@192.168.1.33:/date

• 仅将123推送到了192.168.1.33主机上

实验二:使用 rsync 服务器作为同步源

说明

  • rsync 不仅仅用作远程同步的发起端(客户端),也可以作为守护进程运行,为其他客户机提供同步源
  • 配置 rsync 同步源需要建立配置文rsync.conf,创建备份账户(虚拟用户),然后将 rsync 程序以”- -daemon”选项运行

编辑配置文件

  •  vim /etc/rsyncd.con

• 其中写入

• uid = root #运行进程的身份

• gid = root #运行进程的组

• address = 192.168.1.33 #监听 IP

• port = 873 #监听端口

• hosts allow = 192.168.1.0/24 #允许同步客户端的 IP 地址,可以是网段,或者用*表示所有 192.168.1.0/24 或 192.168.1.0/255.255.255.0

• use chroot = yes #锁定家目录

• pid file = /var/run/rsyncd.pid #PID 文件

• lock file = /var/run/rsync.lock #指 max connectios 参数的锁文件

• log file = /var/log/rsyncd.log #日志文件位置

• [web] #共享模块名称

• path=/date#备份路径

• read only = false #设置服务端文件读写权限

• list = yes #是否允许查看模块信息

• auth users=haige#备份用户

• secrets file = /mnt/rs.pw #存放用户的密码文件

• 创建对应的用户与密码存放文件

• 修改权限chmod 600 /mnt/rs.pw

  • 重启服务

•  rsync --daemon --config=/etc/rsyncd.conf

  • 设置开机自启动

• echo "rsync --daemon --config=/etc/rsyncd.conf" >> /etc/rc.d/rc.local

  • 服务端进行数据传输进行备份

• 格式一

• rsync -avz --delete /opt/ haige@192.168.1.33::web

• 格式二

• rsync -avz --delete /opt/ rsync://haige@192.168.1.33/web

  • 不想每次输入密码的话

• 将密码写入文件中

• touch /root/pw

• vim pw

• 将密码信息写入pw中

• chmod 600 pw

• rsync -avz --delete /opt/ rsync://haige@192.168.1.33/web --password-file=/root/pw

• --password-file=/root/pw 指定密码文件

  • 写入脚本中,编写周期备份计划任务脚本文件

• 运行脚本将脚本备份

• 周期性计划任务 crontab -e

• */1     *       *       *       *       /opt/rs.sh

实验二:配置 rsync+inotify-tools 实时同步

inotify 通知接口,用来监控文件系统的各种
变化情况,如文件存取、删除、移动等

• 表示监控事件队列

• 最多监控实例数

• 每个实例最多监控文件数

rpm -ivh inotify-tools-3.14-9.el7.x86_64.rpm 安装rpm包

inotifywait -mrqe create,move,delete,modify /opt

  • -e:用来指定要监控哪些事件(create,move,delete,modify)
  • -m:表示持续监控
  • -r:表示递归整个目录
  • q:表示简化输出信息

打开一个新的终端进行测试

  • 新终端执行命令

• 原终端进行监控

• 另一台主机将123删掉,可以发现在两台主机上123都已经消失!!!

实验三:配置 rsync+ sersync 实时同步

sersync 可以记录下被监听目录中发生变化的(包括增加、删除、修改)具体某一个文件或者某一个目录的名字,然后使用 rsync 同步的时候,只同步发生变化的文件或者目录

特点

  • sersync 是使用 c++编写

• 而且对 linux 系统文件系统产生的临时文件和重复的文件操作进行过滤,所以在结合 rsync 同步的时候,节省了运行时耗和网络资源

  • sersync 配置起来很简单
  • sersync 使用多线程进行同步,尤其在同步较大文件时,能够保证多个服务器实时保持同步状态
  • sersync 有出错处理机制
  • sersync 自带 crontab 功能

备份源中要写入对应文件vim /etc/rsyncd.conf

对数据源进行操作

  • 解压数据包

• tar -zxf sersync2.5.4_64bit_binary_stable_final.tar.gz -C /usr/local/

  • 进入对应目录cd /usr/local/GNU-Linux-x86/
  • 创建软连接

• ln -s /usr/local/GNU-Linux-x86/sersync2  /usr/local/bin/

  • 编辑配置文件

• 创建备份文件

• cp confxml.xml confxml.xml.bak

• 编辑

• 修改后

• 修改

备份源

  • 杀掉原本运行的rsync进程
  • 重新运行起来rsync --daemon --config=/etc/rsyncd.conf

在数据源rsync -avz --delete /usr/local/apache/ haige@192.168.1.33::web重新推一遍

启动

  • sersync2 -d -r -o /usr/local/GNU-Linux-x86/confxml.xml

设置开机自启动

  • echo "sersync2 -d -r -o /usr/local/GNU-Linux-x86/confxml.xml" >> /etc/rc.d/rc.local

测试

  • 在30主机上修改后,查看33主机上的相关文件同时发生变化

实验四:使用DNS实现简易负载均衡

前期

  • 安装DNS相关软件包yum -y install biond bind-chroot bind-utils

编辑配置文件

  • vim /etc/named.conf

进入/var/named

  • 创建对应zone文件cp named.localhost lyl.com.zone

修改权限

  • chown root.named lyl.com.zone
  • chown root.named xiaoxiaosong.com.zone

开启服务

  • systemctl restart named

修改另一台主机vim /etc/resolv.conf

客户机查看

开机自启设置不成功

需手动开启

数据源执行

  • sersync2 -d -r -o /usr/local/GNU-Linux-x86/confxml.xml

备份源执行

  • rsync --daemon --config=/etc/rsyncd.conf
  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值