一.介绍:
rsync是linux系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步。已支持跨平台,可以在Windows与Linux间进行数据同步,Rsync使用TCP 873端口。
使用CentOS 7系统安装部署Rsync非常方便,安装光盘以及YUM源中都提供了rsync软件包,使用YUM方式安装即可。下面的案例演示了如何共享**/tmp/test目录,为此,我们需要创建/tmp/test目录**,并复制一些测试文件存放在该目录下。本例需要手动创建配置文件/etc/rsync.conf,该文件具体的语法格式在后面有详细的描述。
部署需知:
配置文件存放位置:
/etc/rsyncd.conf
密码文件存放位置:
/etc/rsyncd.secrets
欢迎语文件存放位置:
/etc/rsyncd.motd
使用rpm命令查看是否安装rsync服务
rpm -qa | grep rsync
如果没有安装则配置yum源安装服务:
yum install rsync -y
二.关闭防火墙SELINUX
systemctl stop firewalld.service
systemctl disable firewalld.service
三:创建共享目录(模块)
客户端:
mkdir /tmp/test # 自定义名称
向共享目录里复制一些文件 (创建也行)
cp /etc/init.d/* /tmp/test
四、编辑配置文件(详细): /etc/rsyncd.conf
vim /etc/rsync.conf
motd file = /etc/rsyncd.motd #设置服务器信息提示文件名称,在该文件中编写提示信息
transfer logging = yes ##开启Rsync数据传输日志功能
log file =/var/log/rsyncd.log #设置日志文件名称,可以通过log format参数设置日志格式
pid file =/var/run/rsyncd.pid #设置Rsync进程号保存文件名称
lock file =/var/run/rsync.lock #设置锁文件名称
port = 873 #设置服务器监听的端口号,默认为873
address = 192.168.100.129 #设置服务器所监听网卡接口的IP地址,这里服务器IP地址为192.168.0.254
uid = root #设置进行数据传输时所使用的账户名称或ID号,默认使用root
gid = root #设置进行数据传输时所使用的组名称或GID号,默认使用root
use chroot = no #设置user chroot为yes后,rsync会首先进行chroot设置,将根映射到path参数路径下,对客户端而言,系统的根就是path参数所指定的路径。但这样做需要root权限,并且在同步符号连接资料时仅会同步名称,而内容将不会同步。
read only = no #是否允许客户端上传数据,这里设置为只读。
max connections = 10 #设置并发连接数,0代表无限制。超出并发数后,如果依然有客户端连接请求,则将会收到稍后重试的提示消息
[common] #模块,Rsync通过模块定义同步的目录,模块以[name]的形式定义,这与Samba定义共享目录是一样的效果。在Rsync中也可以定义多个模块
comment = Web content #comment定义注释说明字串
path = /tmp/test #同步目录的真实路径通过path指定
ignore errors #忽略一些IO错误
#exclude = test/ #exclude可以指定例外的目录,即将common目录下的某个目录设置为不同步数据
auth users = root #设置允许连接服务器的账户,账户可以是系统中不存在的用户
secrets file = /etc/rsyncd.secrets #设置密码验证文件名称,注意该文件的权限要求为只读,建议权限为600,仅在设置auth users参数后有效
#hosts allow=192.168.0.0/255.255.255.0 #设置允许哪些主机可以同步数据,可以是单个IP,也可以是网段,多个IP与网段之间使用空格分隔
#hosts deny=* #设置拒绝所有(除hosts allow定义的主机外)
list= false #客户端请求显示模块列表时,本模块名称是否显示,默认为true
可以复制的
1.2 编辑配置文件:/etc/rsyncd.motd
vim /etc/rsyncd.motd
motd file = /etc/rsyncd.motd
transfer logging = yes
log file =/var/log/rsyncd.log
pid file =/var/run/rsyncd.pid
lock file =/var/run/rsync.lock
port = 873
address = 192.168.100.129
uid = root
gid = root
use chroot = no
read only = no
max connections = 10
[common]
comment = Web content
path = /common
ignore errors
#exclude = test/
auth users = root,zhangsan
secrets file = /etc/rsyncd.secrets
#hosts allow=192.168.0.0/255.255.255.0
#hosts deny=*
list= false
注释:test目录需要自己创建
1.3创建密码文件
密码配置文件存放位置:
/etc/rsyncd.secrets
写入配置文件:
echo "root:Yovole.c0m" >/etc/rsyncd.secrets
更改密码配置文件权限:
chmod 600 /etc/rsyncd.secrets
1.4 启动rsync
rsync --daemon
查看rsync端口(一个即可)
ps -ef|grep rsync
netstat -ntpl
添加欢迎语:
echo “welcome to access” >/etc/rsyncd.motd
四:客户端配置
使用rpm命令查看是否安装rsync服务
rpm -qa | grep rsync
如果没有安装则配置yum源安装服务:
yum install rsync -y
关闭防火墙SELINUX
命令懂的都懂
4.1 客户端写入密码文件
echo "Yovole.c0m" >/etc/rsyncd.secrets
4.2 更改密码配置文件权限:
chmod 600 /etc/rsyncd.secrets
五:测试
rsync -avzP /test/* [email protected]:/tmp/ #服务端执行(root密码)
rsync -avzP [email protected]::test /tmp/test #客户端执行(配置文件密码)
rsync -avzP --delete [email protected]::test --password-file=/etc/rsyncd.secrets /tmp/test/ #客户端执行(不需密码)