使用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
- 注意事项
- 确保源机器和目标机器都安装rsync
- 确保目标用户有对目标文件夹的写操作的权限