lsyncd实时动态同步更新文件的方法
lsyncd实时动态同步更新文件的方法
前提是两台主机都需要安装lsyncd,
至于使用ssh密匙访问还是用户名和密码访问自行搜索
本次演示的lsyncd实时动态同步更新文件的方法使用ssh协议密匙认证同步文件
下面是代码,已经添加注释。。
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
settings {
logfile = "/var/log/lsyncd.log", --日志路径
statusFile = "/var/log/lsyncd.status", --状态文件
pidfile = "/var/run/lsyncd.pid", --pid文件路径
inotifyMode = "CloseWrite or Modify", --inotify监控的事件
statusInterval = 1, --状态文件写入最短时间
nodaemon = false, --daemon运行
maxProcesses = 1, --最大进程
maxDelays = 1, --最大延迟
}
sync {
default.rsyncssh, --默认rsync+ssh,rsync版本需要升级3以上版本
source = "/var/www/domain_demo/", --源目录
delete = false, --保持完全同步
host = "test2 or 192.168.11.2",
--注意,如果你在ssh config文件指定了hostname,则远程主机这里应该写hostname。而不是IP。
targetdir = "/var/www/domain_demo/", --目标目录lsyncd -log Exec /etc/lsycd_demo.conf
delay = 15, --多久(15s)同步一次;
--init = true, --只同步进程启动以后发生改动事件的文件,原有的目录即使有差异也不会同步
exclude={
".sql" ,
"config/**",
"databackup/**",
"golangbuild",
"static/**",
"view/**", --需排除的文件和目录
},
rsync = {
binary = "/usr/bin/rsync", --需先安装好rsync
archive = true, --归档
compress = true, --压缩
owner = true, --属主
perms = true, --权限
--whole_file = false
},
ssh = {
port = 22
}
}
sync {
default.rsyncssh, --默认rsync+ssh,rsync版本需要升级3以上版本
source = "/var/www/domain_demo/", --源目录
delete = false, --保持完全同步
host = "test1 or 192.168.11.6",
targetdir = "/var/www/domain_demo/", --目标目录
delay = 15, --多久(15s)同步一次;
--init = true, --只同步进程启动以后发生改动事件的文件,原有的目录即使有差异也不会同步
--exclude={
-- ".sql" ,
-- "config/**",
-- "databackup/**",
-- "golangbuild",
-- "static/**",
-- "view/**", --需排除的文件和目录
--},
rsync = {
binary = "/usr/bin/rsync", --需先安装好rsync
archive = true, --归档
compress = true, --压缩
owner = true, --属主
perms = true, --权限
--whole_file = false
},
ssh = {
port = 22
}
}
启动lsyncd实时更新
lsyncd -log Exec /etc/lsycd_demo.conf
使用下面命令查看lsyncd实时文件更新同步状态
tail -f /var/log/lsyncd.log