使用lsyncd实时同步文件从一台服务器到另一台服务器

一 背景说明

我有3台nginx服务器,想实时同步vhost,html,ssl这三个目录,这样我只是改一台机器的东西,所有服务器上的配置文件也都会被更改,就找到了lsyncd的同步软件,是通过lsyncd结合ssh去实现实时同步的,我这里是想把196上面的3个目录,同步到198和197上.

系统:centos7.9    lsyncd版本:2.2.2    服务端ip:172.19.149.196,两个客户端ip172.19.149.198,172.19.149.197

二 安装lsyncd以及配置

2.1 安装

只是在196的机器上面安装了lsyncd,两个客户端什么都没有安装

yum install lsyncd -y
lsyncd -version  #查看版本
Version: 2.2.2

2.2 配置文件

[root@forward vhost]# cat /etc/lsyncd.conf
settings {
   logfile    = "/var/log/lsyncd/lsyncd.log",
   statusFile = "/tmp/lsyncd.status",
   insist = ture,
   statusInterval = 10
}
sync {
   default.rsyncssh,
   source="/usr/local/nginx/vhost",  #源目录
   host="172.19.149.198",   #目标机器
   targetdir="/usr/local/nginx/vhost",  #目标目录
   excludeFrom="/etc/lsyncd_exclude.lst", #排查那些文件不同步
   maxDelays = 5,
   delay = 0,
   rsync = {
     archive = true,
     compress = false,
     -- verbose   = true
   },
      ssh = {
     port = 22,   #ssh端口号
      }
}

sync {
   default.rsyncssh,
   source="/usr/local/nginx/html",
   host="172.19.149.198",
   targetdir="/usr/local/nginx/html",
   excludeFrom="/etc/lsyncd_exclude.lst",
   maxDelays = 5,
   delay = 0,
   rsync = {
     archive = true,
     compress = false,
     -- verbose   = true
   },
      ssh = {
     port = 22,
      }
}


sync {
   default.rsyncssh,
   source="/usr/local/nginx/ssl",
   host="172.19.149.198",
   targetdir="/usr/local/nginx/ssl",
   excludeFrom="/etc/lsyncd_exclude.lst",
   maxDelays = 5,
   delay = 0,
   rsync = {
     archive = true,
     compress = false,
     -- verbose   = true
   },
      ssh = {
     port = 22,
      }
}




sync {
   default.rsyncssh,
   source="/usr/local/nginx/vhost",
   host="172.19.149.197",
   targetdir="/usr/local/nginx/vhost",
   excludeFrom="/etc/lsyncd_exclude.lst",
   maxDelays = 5,
   delay = 0,
   rsync = {
     archive = true,
     compress = false,
     -- verbose   = true
   },

   ssh = {
     port = 22,
   }
}


sync {
   default.rsyncssh,
   source="/usr/local/nginx/ssl",
   host="172.19.149.197",
   targetdir="/usr/local/nginx/ssl",
   excludeFrom="/etc/lsyncd_exclude.lst",
   maxDelays = 5,
   delay = 0,
   rsync = {
     archive = true,
     compress = false,
     -- verbose   = true
   },
      ssh = {
     port = 22,
      }
}


sync {
   default.rsyncssh,
   source="/usr/local/nginx/html",
   host="172.19.149.197",
   targetdir="/usr/local/nginx/html",
   excludeFrom="/etc/lsyncd_exclude.lst",
   maxDelays = 5,
   delay = 0,
   rsync = {
     archive = true,
     compress = false,
     -- verbose   = true
   },
      ssh = {
     port = 22,
      }
}

指定不同步那些类型的文件

cat /etc/lsyncd_exclude.lst
*.log
*.jar
*.bak
nginx.conf

2.3 生成ssh证书-(在lsyncd安装的机器上面)

ssh-keygen -t rsa -b 4096
 ssh-copy-id -p 22 root@172.19.149.198
 ssh-copy-id -p 22 root@172.19.149.197

2.4 检测配置文件并启动

#检测
lsyncd -nodaemon /etc/lsyncd.conf

systemctl start lsyncd.service

至此配置全部完成了,在196的机器上更改配置文件,自动会同步到197和198了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值