admin avatar

lsyncd实时动态同步更新文件的方法

🕑 by admin

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

💘 相关文章

写一条评论