发表评论
一、服务端安装rsync
#在/usr/local/src目录下下载 wget https://download.samba.org/pub/rsync/rsync-3.1.3.tar.gz tar -xzf rsync-3.1.3.tar.gz mv rsync-3.1.3 rsync cd rsync #编译和安装 ./configure --prefix=/usr/local/rsyncd make && make install
二、配置rsync
#创建配置文件 #rsyncd.conf主配置 #rsyncd.secrets用户配置,此文件的权限必须是600,否则无法正常连接服务端 #rsyncd.motd非必须,连接上rsyncd显示的欢迎信息,此文件可不创建 mkdir /etc/rsyncd cd /etc/rsyncd touch /etc/rsyncd/rsyncd.conf touch /etc/rsyncd/rsyncd.secrets touch /etc/rsyncd/rsyncd.motd chmod 600 /etc/rsyncd/rsyncd.secrets
三、配置rsyncd.conf文件
#守护进程所属的uid uid = root #守护进程的gid gid = root #chroot = yes必须使用root权限,保护系统不被安装漏洞入侵,不备份path路径外的链接文件 use chroot = yes #只读 read only = yes #hosts allow = 192.168.1.0/255.255.255.0 10.10.10.0/255.255.255.0 192.168.1.00 #客户端最大连接数 max connections = 4 #日志相关 # log file 指定rsync发送消息日志文件,而不是发送给syslog,如果不填这个参数默认发送给syslog # transfer logging 是否记录传输文件日志 # log format 日志文件格式,格式参数请google # syslog facility rsync发送消息给syslog时的消息级别, # timeout连接超时时间 log file = /var/log/rsynd.log transfer logging = yes log format = %t %a %m %f %b syslog facility = local3 timeout = 600 #忽略文件或文件夹,空格隔开 exclude = test test.zip #设定rysnc服务器忽略那些没有访问文件权限的用户 ignore nonreadable = yes #告诉rysnc那些文件在传输前不用压缩,默认已设定压缩包不再进行压缩 dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2 #模块,相当于rsync的根目录,可以配置多个模块 [demo] #需要同步的路径 path = /data/demo #客户请求时可用模块时是否列出该模块 list = yes #设定rsync服务器在运行delete操作时是否忽略I/O错误 yes/no ignore errors #指定由空格或逗号分隔的用户名列表,只有这些用户才允许连接该模块,这里的用户和系统用户没有任何关系,是rsyncd.secrets中的用户名 auth users = work #客户端访问的账号密码 secrets file = /etc/rsyncd/rsyncd.secrets #允许访问的ip,可以单个ip也可以整个网段,使用空格隔开,不限制IP为hosts allow = * hosts allow = * #模块描述 comment = my demo
三、配置rsyncd.secrets
多个用户多行保存
work:demo&123456 st:st%123456
四、启动
#如果服务器有开启防火墙需要在iptables中开启873端口iptables -A INPUT -p tcp --dport 873 -j ACCEPT /usr/local/rsync/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf
五、客户端安装rsync
yum -y install rsync touch /etc/rsyncd/rsyncd.pass chmod 600 /etc/rsyncd/rsyncd.pass #同服务端
六、配置rsyncd.pass(不配置此文件也可以即启动时不添加--password-file项,每次只需同步命令的时候输入密码)
demo&123456
七、开始同步
nohup rsync -vzrtopg --progress --password-file=/etc/rsyncd/rsyncd.pass --port=873 work@192.168.1.100::demo/myfiles/ /data/myfiles/ & #如果要实时同步可以把这个命令配置的crontab -e 任务定时启动
八、注意事项
服务端和客户端的rsyncd.secrets文件配置600权限,如果权限不对,客户端同步会报错,rsync的用户名和密码错误也会报相同错误:
@ERROR: auth failed on module demo rsync error: error starting client-server protocol (code 5) at main.c(1648) [Receiver=3.1.2]