这应该是最详细的lsyncd 实时同步数据的教程啦
小白一个,这折腾了一天才搞定lsyncd 实时同步数据。
原因就是网上的教程很多都是基于不同的系统而写的。下面的教程是基于debian而写的。
配置文件都是一样的。配置文件是服务端同时向两台客户端实时同步数据。加注释了方便看
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
settings {
logfile = "/tmp/lsyncd.log",
statusFile = "/tmp/lsyncd.status",
insist = true,
statusInterval = 10
}
//上面的是主配置文件
lsyncd的可选参数:
#############
logfile : 指定lsyncd工具本身运行所产生的日志文件存放位置
statusFile : 定义lsyncd监控目录状态文件的存放位置
statusInterval : 隔多少秒记录一次被监控目录的状态
nodaemon=true : 默认是不启用守护模式的
inotifyMode : 指定要监控的事件,如,CloseWrite,Modify,CloseWrite or Modify
maxProcesses : 指定同步时进程的最大个数
maxDelays : 当事件被命中累计多少次后才进行一次同步
##########################
sync {
default.rsyncssh,
source = "/home/test1",
host = "192.168.1.5",
targetdir = "/home/test1",
-- delete="true",
//默认是先清空客户端目录在同步
--exclude = { "dir*" },
//排除的目录
--excludeFrom = "/etc/rsyncd.d/rsync_exclude.lst",
-- maxDelays = 5,
delay = 0,
-- init = false,
rsync = {
binary = "/usr/bin/rsync",
archive = true,
compress = true,
verbose = true,
--extra = {"--bwlimit=2000"},
},
ssh = {
port = 22
}
}
sync {
default.rsyncssh,
source = "/home/test1",
host = "192.168.1.2",
targetdir = "/home/test1",
-- delete="true",
--exclude = { "dir*" },
--excludeFrom = "/etc/rsyncd.d/rsync_exclude.lst",
-- maxDelays = 5,
delay = 0,
-- init = false,
rsync = {
binary = "/usr/bin/rsync",
archive = true,
compress = true,
verbose = true,
--extra = {"--bwlimit=2000"},
},
ssh = {
port = 22
}
}
###################
一些rsync自带参数:
#######################
default.rsync : 指定lsyncd运行模式,另外,还有default.direct,default.rsyncssh模式,个人建议缺省
source : 指定要监控的目录,务必全部用绝对路径
target : 要同步到的目标目录,一般为rsync服务端模块下指定的目录
init : 为false时表示只同步lsyncd进程启动以后发生改动事件的文件,否则,反之,默认为true
delay : 当命中的事件累计到多少时再触发同步
exclude : 通过此选项排除掉不需要同步的文件,可用它自己的正则进行匹配
delete : 和rsync 的 --delete 作用一样,先清空再同步
compress : 压缩后再同步
bwlimit : 限速同步,当你不想占满带宽时
archive : 归档模式同步
perms : 保留文件原有属性同步
#######################
重点来了,启动lsyncd的正确命令是什么?
systemctl start lsyncd
正确的启动lsyncd命令是要指定配置文件的。
lsyncd -log Exec /filename/config/lsyncd.conf
那么问题来了,如果使用密匙登陆服务器,并且有多台服务器怎么办?
简单,看下面代码,已经添加注释
下面的步骤一定要记得,否则会出现rsync255错误
vi ~/.ssh/config
1
2
3
4
5
6
7
Host 10.11.11.11
User username2
IdentityFile ~/.ssh/test_rsa2
Host 10.10.11.11
User username1
IdentityFile ~/.ssh/test_rsa1
记住如果修改了lsyncd的配置文件记得重启lsyncd进程
💘 相关文章
- lsyncd error: unexplained error (code 255) at io.c(235) [sender=3.1.2]的解决方法
- 基于lsyncd实现的实时增量备份
- lsyncd同步排除目录和文件的两种方法
- rsync排除指定的目录和指定字符开头的文件
- rsync failed: Operation not permitted (1)错误的解决方法
- 不会rsync?开源轻量级同步神器-Syncthing,值得拥有
- bash: rsync: command not found解决方法
- 使用ipv6进行rsync基于密匙证书进行数据同步教程。
- lsyncd实时动态同步更新文件的方法
- rsync Permission denied (publickey).报错的小问题