Ubuntu使用lsyncd实现远端实时同步配置,用它可以来实时备份重要的目录
实例
gerrit代码服务器有代码更新时,实时同步到gerrit备份服务器:
-
200服务器和172.30.50.68代码备份服务器建立ssh信任
ssh-keygen -t rsa #200服务器生产密钥 ssh-copy-id gerrit@172.30.50.60 #copy密钥到备份服务器
-
安装lsyncd
sudo apt-get install lsyncd
-
定义配置文件
sudo mkdir /etc/lsyncd/ sudo vim /etc/lsyncd/lsyncd.conf.lua
配置文件具体内容如下:
settings { logfile = "/var/log/lsyncd/lsyncd.log", #定义日志文件 statusFile = "/var/log/lsyncd/lsyncd.status", #定义状态文件 maxProcesses = 1 #同步进程的最大个数。假如同时有20个文件需要同步,而maxProcesses = 8,则最大能看到有8个rysnc进程 } sync { default.rsyncssh, #同步到远程主机目录,rsync的ssh模式,需要使用key来认证 source = "/data/review_site/git", #同步的源目录,使用绝对路径 host = "gerrit@172.30.50.60", targetdir = "/home/gerrit/review_site/git", #定义目标目录 init = false, #这是一个优化选项,当init = false,只同步进程启动以后发生改动事件的文件,原有的目录即使有差异也不会同步。默认是true delay = 0, rsync = { binary = "/usr/bin/rsync", archive = true, compress = true, #压缩传输默认为true。在带宽与cpu负载之间权衡,本地目录同步可以考虑把它设为false verbose = true }, ssh = { port = 22 } }
-
启动lsyncd
/etc/init.d/lsyncd restart
-
如果数据已同步,但是gerrit备份服务器页面不显示已更新的内容,请重建Gerrit索引。