可以理解为, 在远程主机上建立一个 rsync 服务器, 在服务器上配置好 rsync 的各种应用, 然后本机作为 rsync 的一个客户端去连接远程的 rsync 服务器.
先配置一太 rsync 服务器
建立并配置 rsync 的配置文件 / etc/rsyncd.conf
vi /etc/rsyncd.conf
加入一下配置
- #port=873
- log file=/var/log/rsync.log
- pid file=/var/run/rsync.pid
- #address=192.168.233.129
- [test]
- path=/root/rsync
- use chroot=true
- max connextions=4
- read only=no
- list=true
- uid=root
- gid=root
- auth user=test
- secrets file=/etc/rsyncd.passwd
- hosts allow=192.168.233.130
配置文件非为全部配置部分和模块配置部分. 全局部分就是几个参数, 例如 port,log file ,pid file,address 等,
而 [test] 以下就是模块配置.
一个配置文件中可以有多个模块, 模块名自定义. 模块中的一些参数也可以配置成全局的参数.
查看模块名: rsync --port 873 192.168.233.129::
参数的意义
port 指定在哪个端口启动 rsyncd 服务, 默认是 873
log file 指定日志文件
pid file 指定 pid 文件, 这个文件的作用涉及到服务的启动以及停止等进程管理操作
address 指定启动 rsyncd 服务的 IP, 假如机器有多个 IP, 可以指定其中一个启动 rsyncd 服务, 默认在全部 IP 启动.
[test] 指定模块名, 自定义
path 指定数据存放的路径
user chroot true|false 默认是 true, 意识是在传输文件以前首先 chroot 到 path 参数所指定的目录下. 这样做的原因是实现额外的安全防护, 缺点是需要以 roots 权限, 并且不能备份指向外部的符号连接所指向的目录文件. 默认情况下 chroot 值为 true, 如果数据中有软连接文件, 则设置为 false.
max connections 指定最大的连接数, 默认是 0 即没有限制
read only true|false 如果为 true 则不能上传到该模块指定的路径下
list 指定当用户查询该服务器上的可用模块时, 该模块是否被列出, 设定 true 列出, false 隐藏
uid/gid 指定传输文件时, 以哪个用户 / 组的身份传输
auth users 指定使用的用户名
secrets file 指定密码文件, 以上参数如果不指定则不使用密码验证, 注意该密码文件的权限一定要是 600
hosts allow 指定被允许连接该模块的主机, 可以是 IP 或者网段, 如果是多个, 用空格隔开
编辑 secrets file, 保存后要赋予 600 权限, 如果权限不对, 不能完成同步.
vim /etc/rsyncd.passwd
输入 test:test123
chmod 600 /etc/rsyncd.passwd
启动 rsyncd 服务
rsync --daemon --config=/etc/rsyncd.conf
启动后可以查看一下日志, 并查看端口是否启动
- cat /var/log/rsync.log
- netstat -lnp |grep 873
如果想开机启动, 将 rsync --daemon --config=/etc/rsyncd.conf 写入到 / etc/rc.d/rc.local 文件
然后到另一台机器测试
rsync -avL root@192.168.233.129::test/test1//tmp/ #冒号后的 test 为模块名, 后跟 path 路径下的文件路径
修改 rsyncd.conf 配置文件是即时生效的, 不需要重启服务.
来源: http://www.bubuko.com/infodetail-2692278.html