lsyncd 实时文件同步
当我们需要把代码部署到多台服务器上做load balancing的时候,两三台机器还好,直接一个一个 ftp copy 上去,如果服务器较多这样操作就不现实了。一个简单的办法,使用lsyncd来实现多台服务器间文件同步。
lsyncd 封装了inotify和rsync
lsyncd github地址:https://github.com/axkibe/lsyncd
1.安装lsyncd
首先在每台需要同步的服务器上安装 lsyncd
Debian/Ubuntu
CentOS
2.ssh-keygen
用 ssh-keygen 生成一对 秘钥,不键入密码,两个回车,生成的密钥对位置在
cd ~/.ssh 目录下:id_rsa, id_rsa.pub , 这时候把生成的公钥密码 id_rsa.pub 内容copy到需要同步的 server 的 cd ~/.ssh authorized_keys 里
3.配置config /etc/lsyncd.conf
进入需要同步的一台主服务器,在 lsyncd.conf 配置文件里添加如下信息
上面的配置信息有三段,第一段是设置每隔10秒记录 log 日志,log 的位置放置在 /tmp 路径下。第二段是需要同步的服务器列表,这里为了安全起见可以配置内网的 IP 地址。第三段是一个for循环,遍历循环需要同步的服务器地址,并把 source 配置路径下的内容同步到 targetdir 配置的位置 ,最后一个属性是 ssh 的端口号。
配置好 lsyncd.conf 文件并保存。 进入需要同步文件的主服务器,拷贝一个文件进去, 这个后我们登录 需要同步的服务器,会在配置的目标文件夹下面看到已经同步过来的文件。
领取专属 10元无门槛券
私享最新 技术干货