共计 3158 个字符,预计需要花费 8 分钟才能阅读完成。
Rsync(remote sync)是 UNIX 及类 UNIX 平台下一款神奇的数据镜像备份软件,它不像 FTP 或其他文件传输服务那样需要进行全备份,Rsync 可以根据数据的变化进行差异备份,从而减少数据流量,提高工作效率。你可以使用它进行本地数据或远程数据的复制,Rsync 可以使用 SSH 安全隧道进行加密数据传输。Rsync 服务器端定义源数据,Rsync 客户端仅在源数据发生改变后才会从服务器上实际复制数据至本地,如果源数据在服务器端被删除,则客户端数据也会被删除,以确保主机之间的数据是同步的。Rsync 使用 TCP 873 端口。
使用 CentOS 7 系统安装部署 Rsync 非常方便,安装光盘以及 YUM 源中都提供了 rsync 软件包,使用 YUM 方式安装即可。下面的案例演示了如何共享 /common 目录,为此,我们需要创建 /common 目录,并复制一些测试文件存放在该目录下。本例需要手动创建配置文件 /etc/rsync.conf,该文件具体的语法格式在后面有详细的描述。
[root@centos7 ~]# yum -y install rsync
[root@centos7 ~]# mkdir /common; cp /etc/init.d/* /common/
[root@centos7 ~]# vim /etc/rsync.conf
#/etc/rsyncd.conf
# 设置服务器信息提示文件名称,在该文件中编写提示信息
motd file = /etc/rsyncd.motd
# 开启 Rsync 数据传输日志功能
transfer logging = yes
# 设置日志文件名称,可以通过 log format 参数设置日志格式
log file =/var/log/rsyncd.log
# 设置 Rsync 进程号保存文件名称
pid file =/var/run/rsyncd.pid
# 设置锁文件名称
lock file =/var/run/rsync.lock
# 设置服务器监听的端口号,默认为 873
port = 873
# 设置服务器所监听网卡接口的 IP 地址,这里服务器 IP 地址为 192.168.0.254
address = 192.168.0.254
# 设置进行数据传输时所使用的账户名称或 ID 号,默认使用 nobody
uid = nobody
# 设置进行数据传输时所使用的组名称或 GID 号,默认使用 nobody
gid = nobody
# 设置 user chroot 为 yes 后,rsync 会首先进行 chroot 设置,将根映射到 path 参数路径下,对客户
# 端而言,系统的根就是 path 参数所指定的路径。但这样做需要 root 权限,并且在同步符号
# 连接资料时仅会同步名称,而内容将不会同步。
use chroot = no
# 是否允许客户端上传数据,这里设置为只读。
read only = yes
# 设置并发连接数,0 代表无限制。超出并发数后,如果依然有客户端连接请求,则将会收
# 到稍后重试的提示消息
max connections = 10
# 模块,Rsync 通过模块定义同步的目录,模块以 [name] 的形式定义,这与 Samba 定义共
# 享目录是一样的效果。在 Rsync 中也可以定义多个模块
[common]
#comment 定义注释说明字串
comment = Web content
# 同步目录的真实路径通过 path 指定
path = /common
# 忽略一些 IO 错误
ignore errors
#exclude 可以指定例外的目录,即将 common 目录下的某个目录设置为不同步数据
#exclude = test/
# 设置允许连接服务器的账户,账户可以是系统中不存在的用户
auth users = tom,jerry
# 设置密码验证文件名称,注意该文件的权限要求为只读,建议权限为 600,仅在设置 auth users
# 参数后有效
secrets file = /etc/rsyncd.secrets
# 设置允许哪些主机可以同步数据,可以是单个 IP,也可以是网段,多个 IP 与网段之间使用空
# 格分隔
hosts allow=192.168.0.0/255.255.255.0
# 设置拒绝所有(除 hosts allow 定义的主机外)
hosts deny=*
# 客户端请求显示模块列表时,本模块名称是否显示,默认为 true
list= false
接下来,通过 echo 的方式创建密码文件 /etc/rsyncd.secrets,在该文件中输入两个账户:tom 账户的密码是 pass,jerry 账户的密码是 111。需要注意的是,密码文件不可以对所有的人开放可读权限,为了安全,建议设置权限为 600。创建服务器提示信息文件并向该文件中导入欢迎词。由于 Rsync 默认不是开机启动服务,为了实现开机启动 Rsync 服务,我们可以通过 echo 将 rsync –daemon 追加至开机启动文件 /etc/rc.local。最后通过设置防火墙开启 873 端口的入站数据请求。
[root@centos7 ~]# echo “tom:pass” > /etc/rsyncd.secrets
[root@centos7 ~]# echo “jerry:111” >> /etc/rsyncd.secrets
[root@centos7 ~]# chmod 600 /etc/rsyncd.secrets
[root@centos7 ~]# echo“welcome to access”>/etc/rsyncd.motd
[root@centos7 ~]# rsync –daemon
[root@centos7 ~]# echo“/usr/bin/rsync –daemon”>> /etc/rc.local
[root@centos7 ~]# firewall-cmd –permanent –add-port=873/tcp
# 添加防火墙规则,允许 873 端口的数据访问
客户端同步数据
现在让我们开始同步数据吧,在客户端主机中同样是使用 rsync 命令进行初始化数据传输,使用同样的程序,但客户端主机不需要 –daemon 选项。
[root@centos7 ~]# yum -y install rsync
[root@centos7 ~]# rsync-vzrtopg –progress tom@192.168.0.254::common /test
CentOS 6.5 rsync+inotify 实现数据实时同步备份 http://www.linuxidc.com/Linux/2016-11/137655.htm
rsync+inotify 实现数据的实时同步 http://www.linuxidc.com/Linux/2017-01/139778.htm
rsync+inotify 实现服务器之间文件实时同步详解 http://www.linuxidc.com/Linux/2016-11/137659.htm
Rsync 结合 Inotify 实时同步配置 http://www.linuxidc.com/Linux/2017-02/140877.htm
rsync+inotify 实现数据的实时备份 http://www.linuxidc.com/Linux/2016-11/137630.htm
rsync+inotify 实现数据自动同步 http://www.linuxidc.com/Linux/2017-03/141717.htm
使用 rsync 实现数据实时同步备份 http://www.linuxidc.com/Linux/2017-05/143462.htm
Rsync 的详细介绍:请点这里
Rsync 的下载地址:请点这里
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-06/144757.htm
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-06/144757.htm