rsync备份服务器搭建部署

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了rsync备份服务器搭建部署相关的知识,希望对你有一定的参考价值。

  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的服务端可以指定自行定义好的配置文件中的参数来启动:

[[email protected] ~]# vim /etc/rsyncd.conf
uid = root
gid = root
#定义使用指定的用户、用户组传输
max connections=1
#最大客户端连接数,根据实际有多少个的客户端数量设置
address = 192.168.2.206
#绑定监听的ip,在实际生产环境中建议绑定到内网ip上
port = 873
#监听的tcp端口
exclude = lost+found/
#排除的文件或者目录
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权限,并且不能备份指向外部的符号连接所指向的目录文件
#除此之外如果是客户端那里通过保持文件属组信息传输过来的非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”,在修改好后需要修改用户密码文件的权限,如下:

[[email protected] ~]# vim /etc/rsyncd.passwd
rsync_root:123456
[[email protected] ~]# chmod 400 /etc/rsyncd.passwd

在配置好后就可以以daemon方式启动rsync,如果是在DOS系统下要注意在services.msc中开启rsync的服务:

[[email protected] ~]# rsync --daemon -4 --config=/etc/rsyncd.conf

这里的“-4”是指使用ipv4,在启动后注意需要在rsync服务器上开启873端口,这样rsync的服务端就搭建完成了,此时在客户端上就可以使用rsync推送需要备份的文件至rsync的服务端上了,当然如果在平时使用方便可以类似rsync的服务端上一样可以把rsync的密码填入自行定义的文件中在传输的时候使用password-file参数指定密码文件即可,在这里同rsync的用户密码类似在改后需要修改相应的权限,如果是在Linux下可以指定为隐藏文件,如下:

[[email protected] ~]# vim /root/.rsync.passwd
123456
[[email protected] ~]# chmod 400 /root/.rsync.passwd

此时在rsync的客户端上测试一下:

[[email protected] ~]# rsync -vzrLtopg --progress --delete --port=873 /data/backup --password-file=/root/.rsync.passwd [email protected]::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的其他参数在这里就不做过多的说明了,需要的可以参看http://man.linuxde.net/rsync在里面有详细的说明。

本文出自 “Jim的技术随笔” 博客,谢绝转载!

以上是关于rsync备份服务器搭建部署的主要内容,如果未能解决你的问题,请参考以下文章

rsync实时同步服务部署

rsync服务的搭建

Rsync 搭建远程容灾备份系统

自动化部署安装nfs+rsync+sersync+nfs客户端+SMTP

Rsync + sersync 实时同步备份

CentOS 7部署rsync备份服务器