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

[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的其他参数在这里就不做过多的说明了。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/091ee42493d9e35b17d193b396219b12.html