共计 3296 个字符,预计需要花费 9 分钟才能阅读完成。
rsync 是 Unix 系统下数据镜像备份工具,在局域网内同 scp 相比速度会更快,且在第二次以后做 rsync 时会比对通过 rsync 传输和接收两头的文件,可以实现增量备份,这样当我们在做大文件的数据备份时在使用 rsync 时会更有优势,当然在使用 rsync 的时候也可以指定使用 ssh、scp 或者是 socket 的方式来进行传输。至于 rsync 也可以作为 daemon 启动,所以我们平时在做备份服务中心服务器时多用于搭建 rsync 的服务,而需要备份的各个服务器做为 rsync 的客户端,每次需要备份时只需要往 rsync 的服务器上推送即可。
首先搭建 rsync 使用 rsync 时需要服务端和客户端都有安装 rsync,在开源 Unix 系统下可以通过 yum 或者是 apt 或者是编译安装,如果是在 DOS 系统下可以下载相应的安装包,在 DOS 系统在服务端和客户端是 2 种分开的不同的安装包。在 rsync 做为 daemon 启动时默认指定的端口是 tcp 的 873 端口,当然也可以自行定义端口,rsync 的服务端可以指定自行定义好的配置文件中的参数来启动:
[root@localhost ~]# vim /etc/rsyncd.conf
uid = root
gid = root
# 定义使用指定的用户、用户组传输
max connections=1
# 同一时刻最大客户端连接数,根据实际情况修改设置
address = 192.168.2.206
# 绑定监听的 ip,在实际生产环境中建议绑定到内网 ip 上
port = 873
# 监听的 tcp 端口
exclude = lost+found/
# 排除单个文件或者目录(相对路径),多个使用 exclude-from,指定所需要同步的文件为 files-from,include 指定需要同步的目录
pid file = /var/run/rsyncd.pid
log file = /var/log/rsyncd.log
lock file = /var/run/rsyncd.lock
auth users = rsync_root
# 使用的定义使用 rsync 过程中使用的用户名
secrets file = /etc/rsyncd.passwd
# 定义使用 rsync 过程中使用的用户密码,用户密码可以写在自行定义的文件内
hosts allow = 192.168.2.0/24
# 允许的 IP 或者是网段,多个 ip 或网段用空格隔开
use chroot = no
# 默认是 yesrsync 在传输文件以前首先 chroot 到 path 参数所指定的目录下。
# 这样做的原因是实现额外的安全防护,但是缺点是需要以 root 权限,并且不能备份指向外部的符号连接所指向的目录文件
# 除此之外如果是客户端那里通过保持文件属组信息传输过来相同用户名不同的 uid 和 gid 和 rsync 服务器上的 uid、gid 不同时是不会匹配上文件的正确属组,所以直接选 no 就好了
[192.168.2.203_backup]
# 定义 rsync 的模块,一般每台客户端有使用不同的配置时,可以使用的局部参数
comment= Used for testing rsync
# 注释说明
path = /data/backup/rsync_server/192.168.2.203
# 备份到服务器本地路径
read only=no
# 关闭只读,即可读可写
transfer logging = yes
# 追加日志
在配置好 rsync 的服务端配置文件中的参数后,在刚才定义的 secrets file 内填上 rsync 传输过程中使用的用户名和密码,这里用户名和密码之间使用“:”隔开,“username:password”,在修改好后需要修改用户密码文件的权限,如下:
[root@localhost ~]# vim /etc/rsyncd.passwd
rsync_root:123456
[root@localhost ~]# chmod 600 /etc/rsyncd.passwd
在配置好后就可以以 daemon 方式启动 rsync,如果是在 DOS 系统下要注意在 services.msc 中开启 rsync 的服务:
[root@localhost ~]# rsync –daemon -4 –config=/etc/rsyncd.conf
这里的“-4”是指使用 ipv4,在启动后注意需要在 rsync 服务器上开启 873 端口,这样 rsync 的服务端就搭建完成了, 此时在客户端上就可以使用 rsync 推送需要备份的文件至 rsync 的服务端上了,当然如果在平时使用方便可以类似 rsync 的服务端上一样可以把 rsync 的密码填入自行定义的文件中在传输的时候使用 password-file 参数指定密码文件即可,在这里同 rsync 的用户密码类似在改后需要修改相应的权限,如果是在 Linux 下可以指定为隐藏文件,如下:
[root@localhost ~]# vim /root/.rsync.passwd
123456
[root@localhost ~]# chmod 600 /root/.rsync.passwd
此时在 rsync 的客户端上测试一下:
1 [root@localhost ~]# rsync -vzrLtopg –progress –delete –port=873 /data/backup –password-file=/root/.rsync.passwd rsync_root@192.168.2.206::192.168.2.203_backup
这里解释一下“–delete”表示删除那些 DST 中 SRC 没有的文件。会把目的文件中没有的文件删掉,这样可以保持 rsync 的服务端和客户端在一次镜像后目录中的所有文件保持一致,当然如果是仅需要增量备份而不删除时可以去掉“–delete”参数,而其他的参数中“-v”表示详细模式输出;“-z”表示对备份的文件在传输时进行压缩处理;“-r”表示对文件夹递归;“-L”表示把软链接转为真实目录文件,如果是要保持软链接就使用“-l”;“-t”表示保持文件时间信息;“-o”表示保持文件属主信息;“-p”表示保持文件权限;“-g”表示保持文件属组信息,其中需要注意的是在传输中“/data/backup”和“/data/backup/”两种是不同的,其中“/data/backup”表示传送到 rsync 服务器时包含 backup 目录,而后者“/data/backup/”只传送 /data/backup 目录下的所有文件不包括 /data/backup 目录,这个需要注意的,至于 rsync 的其他参数在这里就不做过多的说明了。
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 实现数据备份 http://www.linuxidc.com/Linux/2017-06/144913.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-08/146524.htm