Lsyncd建立实时同步的镜像主机实验

Lysncd即Live Syncing Daemon,它是开源的数据实时同步工具(后台进程),基于inotify和rsync。

Lsyncd会密切监测本地服务器上的参照目录,当发现目录下有文件或目录变更后,立刻通知远程服务器,并通过rsync 或rsync+ssh方式实现文件同步。这样做的好处就是,你可以利用Lsyncd搭建一个VPS同步镜像,应用场景例如CDN镜像、网站数据备份、网站搬家等等。

实验环境

源主机 T801
操作系统:CentOS6.9
IP地址:192.168.2.81
镜像主机T802
操作系统:CentOS6.9
IP地址:192.168.2.82


安装Lsyncd先要添加epel源

1
2
wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-6.repo
yum install -y lsyncd

在源主机创建密钥并copy至镜像主机实现免密登陆

1
2
ssh-keygen -t rsa
ssh-copy-id root@192.168.2.82

设置配置文件

1
vim /etc/lsyncd.conf

lsyncd.conf中写入如下配置

1
2
3
4
5
6
7
8
9
10
11
12
settings = {
insist = true,
logfile = "/var/log/lsyncd/lsyncd.log",
statusFile = "/var/log/lsyncd/lsyncd.status"
}

sync {
default.rsyncssh,
source = "/data/www",
host = "192.168.2.82",
targetdir = "/data/www"
}

源主机创建相关文件

1
2
3
mkdir /var/log/lsyncd
touch /var/log/lsyncd/lsyncd.{log,status}
mkdir /data/www

镜像主机创建同步目录

1
mkdir /data/www

启动服务

1
service lsyncd start

源主机创建文件测试

1
2
touch /data/www/{a,b,c,d,e}
ll /data/www/

镜像主机查看

1
ll /data/www/

附:rsync拷贝命令

1
2
rsync -avzP -e ssh root@118.89.29.29:/data/www/* /data/www/
##快速拷贝远程服务器文件