第二十八章 DragonFlyBSD
第十一节 rsync 同步服务

环境介绍

服务器 A、服务器 B 均为 FreeBSD-12.2-RELEASE-amd64
服务器 A(发起端):192.168.100.10/24
服务器 B(同步源):192.168.100.20/24
**需求:**实现服务器B的数据同步到服务器A上

服务器B(同步源)配置

安装 rsync 软件包

1
# pkg install -y rsync
Copied!

查询已安装 rsync 软件包的信息

1
# pkg info | grep rsync
2
rsync-3.2.3
Copied!

新建需要备份的文件夹test,并且设置其属主为 root,以及在其内部新建测试文件

1
# mkdir test
2
# chown root /home/test/
3
# touch txt001 /home/test/
Copied!

编辑rsyncd.conf文件

1
# ee /usr/local/etc/rsync/rsyncd.conf
2
3
uid = root //服务端操作系统的用户
4
gid = wheel //服务端操作系统的用户的组
5
use chroot = yes //禁锢在源目录
6
address = 192.168.100.20 //监听地址
7
port 873 //用于通信的TCP端口,缺省是873
8
log file = /var/log/rsyncd.log //日志文件位置
9
pid file = /var/run/rsyncd.pid //存档进程ID的文件位置
10
hosts allow = 192.168.100.0/24 //允许访问的客户机地址
11
12
[testcom] //共享模块名称,自定义的名称,不一定要与同步目录相同
13
path = /home/test //同步的目录名,必须是uid参数指定的用户和gid参数指定的组
14
comment = testcombackup //模块说明文字
15
read only = yes //是否为只读
16
dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2 //同步时不再压缩的文件类型
17
18
auth users = root //授权账户
19
secrets file = /etc/rsyncd_users.db //定义rsync客户端用户认证的密码文件
Copied!

创建授权备份账户认证的密码文件

1
# ee /etc/rsyncd_users.db
2
3
root:12345678 //格式:授权账户用户名:密码
Copied!

修改数据文件权限

1
# chmod 600 /etc/rsyncd_users.db
Copied!
rsync 的服务名是 rsyncd,启动 rsync 服务程序
1
# rsync --daemon //启动服务
2
3
# sysnc rsyncd_enable="YES" //设置开机自启动
4
5
# /usr/local/etc/rc.d/rsyncd start //启动服务
Copied!

查看 rsync 运行端口号

1
# sockstat | grep rsync
2
root rsync 1185 4 dgram -> /var/run/logpriv
3
root rsync 1185 5 tcp4 192.168.100.20:873 *:*
Copied!

防火墙放行 rsync 服务

1
# ee /etc/ipfw.rules
2
3
IPF="ipfw -q add"
4
ipfw -q -f flush
5
6
#loopback
7
$IPF 10 allow all from any to any via lo0
8
$IPF 20 deny all from any to 127.0.0.0/8
9
$IPF 30 deny all from 127.0.0.0/8 to any
10
$IPF 40 deny tcp from any to any frag
11
12
# statefull
13
$IPF 50 check-state
14
$IPF 60 allow tcp from any to any established
15
$IPF 70 allow all from any to any out keep-state
16
$IPF 80 allow icmp from any to any
17
18
# open port for ssh
19
$IPF 110 allow tcp from any to any 22 out
20
$IPF 120 allow tcp from any to any 22 in
21
22
# open port for rsync
23
$IPF 130 allow tcp from any to any 873 in
24
25
# deny and log everything
26
$IPF 500 deny log all from any to any
Copied!

服务器 A(发起端)配置

创建本地文件夹 /home/testBackUp/ 并设置好相关权限

1
# mkdir testBackUp
2
# chown root:root testBackUp
Copied!

发起端访问同步源,将文件下载到本地 /home/testBackUp/ 下载目录下,需要人机交互手动输入密码

1
# rsync -avz [email protected]::testcom /home/testBackUp
Copied!

查看同步情况

1
# ls -l /home/testBackUp/
2
total 0
3
-rw-r--r-- 1 root root 0 Feb 2 22:27 txt001
Copied!
最近更新 29d ago