lsync主页|官方文档
环境要求
- rsync
- 执行
lsyncd
命令的用户需要能免密码SSH登录B主机(配置方法见下文)。
下载-编译-安装
Debian使用sudo apt-get install lsyncd
安装。Centos需要编译安装,步骤如下:
cd ~
mkdir tools
cd tools
wget https://github.com/axkibe/lsyncd/archive/release-2.1.5.tar.gz
sudo yum -y install lua lua-devel pkgconfig gcc asciidoc
sudo yum install binutils gcc
sudo yum install cmake
sudo yum install autoconf
sudo yum install automake
tar -xzvf release-2.1.5.tar.gz
cd lsyncd-release-2.1.5
./autogen.sh
./configure && sudo make
上面最后一步可能会报/doc
安装错误,可忽略。执行./lsyncd -version
看看安装是否成功。
将lsyncd
加入PATH
: 编辑~/.bashrc
,在末尾添加下面一行, (将~/tools/lsyncd-release-2.1.5/
更换为lsyncd
命令行所在的目录)
export PATH=$PATH:~/tools/lsyncd-release-2.1.5/
lsyncd的配置
注意: 需要将文件从主机A同步到B时,应在主机A上运行lsyncd
。
新建配置文件lsync.conf
,如下(其中的userb@B-IP
为另一台服务器的用户及地址,请按具体环境修改):
settings {
logfile = "/tmp/lsyncd-GA.log",
statusFile = "/tmp/lsyncd-GA.status",
maxProcesses = 3,
maxDelays = 20
}
sync {
default.rsync,
source = "/source-dir",
target = "userb@B-IP:/remote-target-dir",
delete = false,
delay = 10,
excludeFrom = "/home/path/tools/excluded",
rsync = {
binary = "/usr/bin/rsync",
compress = false,
}
}
sync {
default.rsync,
source = "/another-source/dir",
target = "luserb@B-IP:/another/remote-target-dir",
delete = false,
delay = 20,
rsync = {
binary = "/usr/bin/rsync",
compress = false,
}
}
常用参数说明(更多参数见官方文档)
source
源文件目录target
目标文件目录delete
设为true时, 从本地删除文件后,同时从远程删除文件,默认为truemaxProcesses
lsyncd能使用的最大进程数delay
有文件变更时,等待此时间后再同步(单位秒)maxDelays
等待同步事件队列的最大长度。超过这个长度时,即使delay
的时间未到,也执行同步excludeFrom
忽略文件列表,可使用通配符,内容如下
/target /.git .gitignore *.log *.iml
使用如下命令启动`lsyncd`后台进程:
```bash
lsyncd lsync.conf
SSH免登录访问
请参考ref。
如果无法登录,请确保
- 远程.ssh目录权限为700
- 远程.ssh/authorized_keys权限为600
- 本机.ssh/id_rsa权限为600