基于c/s架构,客户端、服务端。服务端开启服务,rsync,监听端口873,端口可自定义, 要编辑配置文件/etc/rsyncd.conf

rsyncd.conf样例 port=873 #监听端口,可自定义,改完端口得重启 log file=/var/log/rsync.log #指定日志文件 pid file=/var/run/rsyncd.pid #指定pid文件,这个文件的作用涉及服务的启动、停止等进程管理操作。 address=192.168.133.130 #绑定了ip地址,如果不绑定,则是0.0.0.0,指的是全部的ip地址 [test] #指定模块名,里面内容自定义。 path=/tmp/rsync #如果没有则需要创建目录,可设置为777权限,方便测试,指定数据存放的路径。 use chroot=true #表示只能同步path所定义的路劲里的内容。这样做的原因是实现额外的安全防护,但缺点是需要以roots权限,并且不能备份指向外部的符号连接所指向的目录文件。默认情况下chroot值为true,如果你的数据当中有软连接文件,阿铭建议你设置成false。 max connections=4 #指定最大的连接数,默认是0,即没有限制。 read only ture|false #如果为true,则不能上传到该模块指定的路径下 list=true #表示当用户查询该服务器上的可用模块时,该模块是否被列出,设定为true则列出,false则隐藏。 uid=root #指定传输文件时以哪个用户/组的身份传输。 gid=root #指定传输文件时以哪个用户/组的身份传输。 auth users=test #auth users:指定传输时要使用的用户名。

secrets file=/etc/rsyncd.passwd #指定密码文件,/etc/rsyncd.passwd可在这个路径里,创建文件,设置密码,格式:用户名:密码,该参数连同上面的参数如果不指定,则不使用密码验证。 注意该密码文件的权限一定要是600。
例如:rsync -avP test@192.168.133.130::test/1.txt /tmp/ test1.txt 当设置了auth users和secrets file后,客户端连服务端也需要用用户名密码了,若想在命令行中带上密码,可以设定一个密码文件 例如 vim /tmp/rsync_pass 在这个文本文档里直接输入密码 ,权限改完600 rsync -avL test@192.168.133.130::test/test1/ /tmp/test8/ --password-file=/tmp/rsync_pass #--password-file=/tmp/rsync_pass 指定密码文件路径

hosts allow=192.168.133.132 1.1.1.1 2.2.2.2 192.168.133.0/24 #表示被允许连接该模块的主机,可以是IP或者网段,如果是多个,中间用空格隔开。用于哪个ip连接这个机器。

启动服务rsync --daemon 格式:rsync -avP /tmp/ test1.txt 192.168.133.130::test/1.txt #将/tmp/ test1/同步到192.168.133.130/tmp/rsync 这个路径下去且改名为:1.txt ,[] 代表模块名,模块名代表的就是路径/tmp/rsync 如果报错,可用telnet检查,并查看是否防火墙开启

rsync -avP 192.168.133.130::test/1.txt /tmp/ test1.txt #将192.168.133.130下的/tmp下rsync的1.txt 拉去到本机下改名为test1.txt

rsync -avP --port 8730 192.168.133.130::test/1.txt /tmp/ test1.txt #--port 8730指定8730端口