场景,公司需要多台文件进行同步,多目录文件进行同步,分别有server1、2,如果只是单项同步,比如server1同步到server2,server2是不需要安装lsyncd的,可以直接进行ssh同步。这里是双向同步所以必须二台都需要安装。
server1 IP地址:192.168.0.5 同步目录/home/we,/home/abc
server2 IP地址:192.168.0.6 同步目录/home/we,/home/abc
2台都需要安装lsyncd先安装支持组件

yum -y install epel*
yum update -y
yum install git cmake3 lua lua-devel -y
yum install -y groupinstall pcre-devel zlib-devel gcc gcc-c++ autoconf automake make pcre-devel zlib-devel
yum -y install pcre-devel ctags-etags openssl openssl-devel
yum install lz4* libzstd* xx* net-tools -y

下载编译安装lsyncd

git clone https://github.com/axkibe/lsyncd.git
cd lsyncd
mkdir build
cd build
cmake3 ../
make&&make install

3台服务器做好免密登录
接下来做配置文件
server1上创建/etc/lsyncd.conf文件

settings {
    logfile    = "/tmp/lsyncd.log",
    statusFile = "/tmp/lsyncd.status",
    insist = true,
    statusInterval = 3
 }
sync
 {
         default.rsyncssh,
         source="/home/we/",
         host="192.168.0.6",
         targetdir="/home/we/",
 }
 sync
 {
         default.rsyncssh,
         source="/home/abc/",
         host="192.168.0.6",
         targetdir="/home/abc/"
 }

在server2上创建/etc/lsyncd.conf上创建文件

settings {
    logfile    = "/tmp/lsyncd.log",
    statusFile = "/tmp/lsyncd.status",
    insist = true,
    statusInterval = 3
 }
sync
 {
         default.rsyncssh,
         source="/home/we/",
         host="192.168.0.5",
         targetdir="/home/we/",
 }
 sync
 {
         default.rsyncssh,
         source="/home/abc/",
         host="192.168.0.5",
         targetdir="/home/abc/"
 }

参数如下:
logfile:日志文件路径
statusFile:进程路径
insist:继续运行,即使有失败的目标。
statusInterval:多少秒写入文件,默认是10s
sync为同步配置,部分参数如下:
source:本地文件目录
host:远程服务器地址
targetdir:远程目标目录
在server1测试

lsyncd -nodaemon /etc/lsyncd.conf

后台运行

lsyncd -nodaemon /etc/lsyncd.conf&

现在已经同步了
在server2测试

lsyncd -nodaemon /etc/lsyncd.conf

后台运行

lsyncd -nodaemon /etc/lsyncd.conf&

现在已经可以双向同步了
如果有多台服务器,可以使用多个lsyncd.conf进行配置,例,同步到 server8,的创建一个配置文件8lsyncd.conf,运行命令lsyncd -nodaemon /etc/8lsyncd.conf,即可。

分类: linux数据同步 标签: 暂无标签

评论

暂无评论数据

暂无评论数据

目录