张晨的个人博客

Linux使用rsync同步或备份文件

张晨的个人博客2018-09-20综合技术 3231 0A+A-

一、服务端安装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]


发表评论