通过rsyncd实现将源服务器上的文件同步到目标服务器,通过lsyncd监控源服务器上的文件是否有变动,若有变动调用rsyncd服务对差异的文件进行同步。
0. lsyncd有三种同步文件的方式:
(1)rsync模式:不同主机间同步文件,文件的传递通过套接字传输,服务端启动rsyncd服务监听来自客户端的连接请求。
主机的一端安装lsyncd,另一端安装rsync,并启动为服务。
(2)rsyncssh模式:不同主机间同步文件,文件的传输通过ssh,服务端不必启动rsyncd服务,而是通过ssh创建子进程,然后调用rsync程序完成文件同步。
主机的一端安装lsyncd,另外一端安装rsync。
(3)direct模式:在同一台主机上同步文件,使用cp、mv等命令完成文件的同步。
主机上安装lsyncd即可。
本博客介绍第一种rsync模式的安装及配置。
1. 按下图所示在源和目标服务器上安装rsync和lsyncd程序包
2. 目标服务器上安装rsync,并配置
2.1. 安装rsync
$ yum -y install rsync
2.2 修改配置文件 /etc/rsyncd.conf
$ vim /etc/rsyncd.conf # 启用用户和密码验证,指定文件路径 secretsfile = /etc/rsync.pass [backup] # 同步的目标路径 path = /nq/client # 授权那些源主机 hosts allow = 192.168.0.10,192.168.0.21 # 其它的禁止 hosts deny = * # 启动rsyncd服务的用户和组 uid = root gid = root # 授权连接目标服务器的用户 auth users = rsync
# 否则无法同步
read only = false
2.3 创建用户和密码文件,并修改权限为600
$ cat /etc/rsync.pass rsync:123456 $ chmod 600 /etc/rsync.pass
2.4 启动服务
$ systemctl start rsyncd
3. 源服务器上安装rsync和lsyncd,并配置lsyncd
3.1 安装rsync
$ yum -y install rsync
3.2 安装lsyncd
$ yum -y install lsyncd
3.3 修改配置文件 /etc/lsyncd.conf
$ /etc/lsyncd.conf settings { -- 状态存放位置 statusFile = "/tmp/lsyncd.stat", -- 将lsyncd状态写入statusFile文件中的时间间隔 statusInterval = 10, --延迟时间 maxDelays = 1, } sync{ -- rsync, rsyncssh, direct 三种模式
-- rsync模式:不同主机间同步文件,文件的传递通过套接字传输,服务端启动rsyncd服务监听来自客户端的连接请求
-- rsyncssh模式:不同主机间同步文件,文件的传输通过ssh,服务端不必启动rsyncd服务,而是通过ssh创建子进程,然后调用rsync程序完成文件同步
-- direct模式:在同一台主机上同步文件,使用cp、mv等命令完成文件的同步。 default.rsync, -- 同步的源目录 source="/nq/server/", -- 目标地址 target="rsync@192.168.0.21::backup", -- 同步删除目标文件 delete = true, -- 哪些文件不同步 exclude = {".*"}, rsync = { -- rsync路径 binary = "/usr/bin/rsync", archive = true, compress = true, verbose = true, -- 密码文件 password_file = "/etc/passwd.txt", } }
3.4 将密码存储于以下文件中,并设置权限为600
$ cat /etc/passwd.txt 123456
$ chmod 600 /etc/passwd.txt
参考文档
1. rsync原理