1、安装
安装
sudo apt install lsyncd rsync
配置文件事例:
/usr/share/doc/lsyncd/examples
启动服务
sudo systemctl restart lsyncd
查看服务状态
sudo systemctl status lsyncd
lsb_release -a
Ubuntu 18.04.3 LTS
lsyncd -version
Version: 2.1.6
Ubuntu 18.04.3 LTS
lsyncd -version
Version: 2.1.6
2、配置
/etc/lsyncd/lsyncd.conf.lua
需要创建/etc/lsyncd和/var/log/lsyncd目录
settings配置说明:https://axkibe.github.io/lsyncd/manual/config/file/
2.1)本地目录同步,如果同步多个目录可以复制多份sync
lsyncd.conf.lua内容:
settings {
logfile = "/var/log/lsyncd/lsyncd.log",
statusFile = "/var/log/lsyncd/lsyncd.status",
insist = true,
statusInterval = 10
}
sync {
default.rsync,
source="/data/a",
target="/data/b",
delay=0,
exclude={'runtime'},
delete='running',
rsync = {
archive = true,
compress = true,
owner=true,
group=true,
perms=true
}
}
2.2)远程目录同步
192.168.1.10 源机器(lsyncd),myuser1
192.168.1.20 目标机,myuser2
10源机器上生成ssh key
myuser1$ ssh-keygen -t rsa
myuser1$ ssh-copy-id myuser@192.168.1.20
先在10源机器上ssh key登录20目标机,成功后再配置lsyncd
myuser1$ ssh myuser2@192.168.1.20
源机器/home/myuser1/.ssh/id_rsa 私钥
目标机/home/myuser2/.ssh/authorized_keys 每一行都是一个pub key(源机器/home/myuser1/.ssh/id_rsa.pub内容)
lsyncd.conf.lua内容:
settings {
logfile = "/var/log/lsyncd/lsyncd.log",
statusFile = "/var/log/lsyncd/lsyncd.status",
insist = true,
statusInterval = 10
}
sync {
default.rsyncssh,
source="/data/a",
host="myuser2@192.168.1.20",
targetdir="/data/b",
delay=0,
exclude={'runtime'},
delete='running',
rsync = {
archive = true,
compress = true,
owner=true,
group=true,
perms=true
},
ssh = {
port=22,
identityFile="/home/myuser1/.ssh/id_rsa"
}
}