DaLei@home:~$

使用lsyncd同步服务器文件



Lsyncd是一个实时同步服务器文件的利器,Github地址

搭建环境: Ubuntu18.04

  • 安装
sudo apt-get install lsyncd
  • 依赖

lsyncd依赖rsync,需要在文件同步的机器上面检查安装(文件同步双方都需要检查)

sudo apt-get install rsync

源机器需要配置ssh免密登陆到目标机器, 如果没有则按以下步骤操作

cd ~
ssh-keygen -t rsa  #如果.ssh/目录下已经存在id_rsa和id_rsa.pub, 则跳过该步
ssh-copy-id -i .ssh/id_rsa.pub user@ip  #将本地公钥加到目标机器的authorized_keys, 输入密码
ssh user@ip  #检测是否成功免密,如果不用输入密码表示配置成功
  • 配置

在/etc/lsyncd/ 新建或者修改lsyncd.conf.lua文件,其内容为如下格式

settings  {
        logfile = "/var/log/lsyncd/lsyncd.log",  -- 日志文件的地址,可以查看失败的原因
        statusFile = "/var/log/lsyncd/lsyncd.status",
        maxProcesses = 2
}

-- 配置多台目标服务器
hosts = {
        '192.168.1.3',
        '192.168.1.4',
}

--同步操作
for _, host in ipairs(hosts)
do
        sync {
        default.rsyncssh,
        source = "/data",
        host = host,
        targetdir = "/data",
        init = false,  --false只会同步改动的文件,以前的文件不同步
        delay = 0,
        rsync  = {
                binary    = "/usr/bin/rsync",
                archive   = true,
                compress  = true,
                verbose   = true
        },

        ssh   = {
                port  = 22
        }
        }
end

重启lsyncd服务

/etc/init.d/lsyncd restart
  • 注意事项
  1. 确保源机器和目标机器都安装rsync
  2. 确保目标用户有对目标文件夹的写操作的权限