1. 安装 Lsyncd

首先,在你希望设置同步的主服务器上安装 Lsyncd。

对于基于 Debian/Ubuntu 的系统:

sudo apt-get update
sudo apt-get install lsyncd

对于基于 Red Hat/CentOS 的系统:

sudo yum install epel-release
sudo yum install lsyncd

2. 生成 SSH 公钥

在主服务器(服务器 A)上生成 SSH 密钥对(公钥和私钥)。

ssh-keygen -t rsa -b 4096

按照提示操作,并将密钥保存在默认目录中(~/.ssh/id_rsa 对于私钥,~/.ssh/id_rsa.pub 对于公钥)。

3. 将公钥复制到远程服务器

使用以下命令将生成的公钥复制到目标服务器(服务器 B):

ssh-copy-id user@remote_server

此命令将公钥添加到远程服务器上的 ~/.ssh/authorized_keys 文件中,从而允许无密码认证。

4. 验证 SSH 无密码连接

验证你是否可以在无需输入密码的情况下连接到远程服务器:

ssh user@remote_server

如果连接成功且不要求输入密码,则公钥设置已正确配置。

5. 配置 Lsyncd 文件

编辑或创建 Lsyncd 配置文件,通常位于 /etc/lsyncd/lsyncd.conf.lua

配置示例:

settings {
logfile = “/var/log/lsyncd/lsyncd.log”,
statusFile = “/var/log/lsyncd/lsyncd-status.log”,
nodaemon = false,
}

sync {
default.rsyncssh,
source = “/ruta/a/sincronizar/”,
host = “usuario@servidor_remoto”,
targetdir = “/ruta/remota/destino/”,
rsyncOpts = {“-avz”},
ssh = {
port = 22,
identityFile = “/home/tu_usuario/.ssh/id_rsa”
}
}

6. 启动 Lsyncd

启动 Lsyncd 以开始同步:

sudo lsyncd /etc/lsyncd/lsyncd.conf.lua

为了确保 Lsyncd 在服务器启动时自动启动,你可以将其设置为系统服务。

7. 监控和日志

检查 Lsyncd 日志以监控其活动,并确保同步正常进行:

tail -f /var/log/lsyncd/lsyncd.log