环境 rhel6.5 64位
wget https://github.com/axkibe/lsyncd/archive/release-2.2.2.tar.gz
2.3版本编译报错
依赖
lua5.14
lua-devel-5.14
cmake version 2.8.12.2
编译安装
tar xvf lsyncd-release-2.2.2.tar.gz
cd lsyncd-release-2.2.2
cmake -DCMAKE_INSTALL_PREFIX=/data/lsync2.2.2
make
make install
lsyncd主配置文件
settings {
nodaemon = false,
logfile = "/var/log/lsyncd.log",
statusFile = "/var/log/lsyncd.status",
inotifyMode = "CloseWrite",
maxProcesses = 8
}
-- 可以有多个sync,各自的source,各自的target,各自的模式,互不影响。
sync {
default.rsyncssh,
source = "/home/wwwroot/web1/",
host = "111.222.333.444",
targetdir = "/home/wwwroot/web1/",
-- 忽略文件路径规则,可用table也可用外部配置文件
-- excludeFrom = "/etc/lsyncd_exclude.lst",
exclude = {
".svn",
"Runtime/**",
"Uploads/**",
},
-- maxDelays = 5,
delay = 0,
-- init = false,
rsync = {
binary = "/usr/bin/rsync",
archive = true,
compress = true,
verbose = true,
_extra = {"--bwlimit=2000"},
},
}
忽略规则
需要忽略同步的文件或文件夹,excludeFrom 选项才配置该文件,exclude 类型的配置不用该配置文件。假设配置文件放在/etc/lsyncd_exclude.lst
。
.svn
Runtime/**
Uploads/**
免密登录
为避免每次都需要手动输入密码,可设置为 SSH 免密登录。
自己的配置文件
root@ *zabbix-backed* @yxsjfxapp03:/root# cat /etc/lsyncd.conf
settings{
logfile = "/var/log/lsyncd/lsyncd.log",
statusFile = "/var/log/lsyncd/lsyncd.status",
inotifyMode = "CloseWrite or Modify",
maxProcesses = 1,
statusInterval = 10,
nodaemon = true,
maxDelays = 20
}
sync {
default.rsyncssh,
source = "/opt/website/",
host = "9.1.8.244",
targetdir = "/opt/website/",
exclude = {
"aa.txt",
},
-- maxDelays = 5,
delay = 0,
-- init = false,
rsync = {
binary = "/usr/bin/rsync",
archive = true,
compress = true,
verbose = true,
_extra = {"--bwlimit=2000"},
},
}
sync {
default.rsyncssh,
source = "/opt/kangchangwei/",
host = "9.1.8.244",
targetdir = "/opt/kangchangwei/",
exclude = {
"kangchangwei.txt",
},
-- maxDelays = 5,
delay = 0,
-- init = false,
rsync = {
binary = "/usr/bin/rsync",
archive = true,
compress = true,
verbose = true,
_extra = {"--bwlimit=2000"},
},
}
启动
/data/lsync2.2.2/bin/lsyncd -log all /etc/lsyncd.conf &>/dev/null &
添加/etc/rc.local
root@ *zabbix-backed* @yxsjfxapp03:/root# ps -ef|grep lsyncd
root 13541 11723 0 12:50 pts/3 00:00:00 /data/lsync2.2.2/bin/lsyncd -log all /etc/lsyncd.conf
关于 lsyncd.conf
配置文件的详细配置及配置项简要说明
settings 部分,其实就是关于lsyncd工具自身的一些选项设置:
logfile : 指定lsyncd工具本身运行所产生的日志文件存放位置
statusFile : 定义lsyncd监控目录状态文件的存放位置
statusInterval : 隔多少秒记录一次被监控目录的状态
nodaemon=true : 默认是不启用守护模式的
inotifyMode : 指定要监控的事件,如,CloseWrite,Modify,CloseWrite or Modify
maxProcesses : 指定同步时进程的最大个数
maxDelays : 当事件被命中累计多少次后才进行一次同步
sync 部分主要用来定义同步时的一些设置,可以同时同步多个目录,只需要在该代码块中事先定义好多个sync即可
default.rsync : 指定lsyncd运行模式,另外,还有default.direct,default.rsyncssh模式,个人建议缺省
source : 指定要监控的目录,务必全部用绝对路径
target : 要同步到的目标目录,一般为rsync服务端模块下指定的目录
init : 为false时表示只同步lsyncd进程启动以后发生改动事件的文件,否则,反之,默认为true
delay : 当命中的事件累计到多少时再触发同步
exclude : 通过此选项排除掉不需要同步的文件,可用它自己的正则进行匹配
delete : 和rsync 的 --delete 作用一样,先清空再同步
下面是关于 rsync 工具自身的一些设置选项
compress : 压缩后再同步
bwlimit : 限速同步,当你不想占满带宽时
archive : 归档模式同步
perms : 保留文件原有属性同步
查看日志
tail -f /var/log/lsyncd/lsyncd.log