lsyncd 是一个支持实时、双向、多机器的多模式文件同步工具。
使用 Lua 语言封装了 inotify 和 rsync 工具,采用了 Linux 内核(2.6.13 及以后)里的 inotify 触发机制,然后通过 rsync 去差异同步,达到实时的效果。
安装
在源文件服务器上安装:
yum -y install lsyncd
配置
lsyncd 主配置文件,假设放置在/etc/lsyncd.conf:
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 免密登录。
启动
lsyncd -log Exec /etc/lsyncd.conf
参考
继续阅读与本文标签相同的文章
上一篇 :
追悼伟大的科学家史蒂芬·霍金,预言见解
-
面对人工智能的发展,人类未来将扮演怎样的角色?
2026-05-19栏目: 教程
-
2019 DevOps 必备面试题——持续集成篇
2026-05-19栏目: 教程
-
从“人工智障”到“人工智能”,Siri开始说人话了!
2026-05-19栏目: 教程
-
Flink 1.9 实战:使用 SQL 读取 Kafka 并写入 MySQL | 9月4号栖夜读
2026-05-19栏目: 教程
-
历时五天用 SwiftUI 做了一款 APP,阿里工程师如何做的?
2026-05-19栏目: 教程
