用Lsyncd实现本地和远程服务器之间实时同步(2)

配置文件写入以下内容(注意把Source和Target分别替换你的源目录路径和目标目录路径):

settings = { logfile = "/var/log/lsyncd/lsyncd.log", statusFile = "/var/log/lsyncd/lsyncd.status" } sync { default.rsync, source = "/var/www/source_dir", target = "/home/snail/backup", }

最后,启动lsyncd服务:systemctl restart lsyncd,往源目录中添加文件,看看目标目录中会不会同步增加。如果没有,请查看日志。

四、Lsyncd远程同步

用Lsyncd实现两台VPS主机服务器之间实时同步。首先,进入你的源VPS主机,使用S-S-H命令远程登录到目标VPS主机上。

ssh root@your_remote_server_IP #或者指定端口 ssh root@your_remote_server_IP -p 1234

接着,执行命令,在目标VPS上生成密钥:

ssh-keygen -t rsa # 全部回车默认

用Lsyncd实现本地和远程服务器之间实时同步

生成密钥成功后,你需要将目标VPS上的密钥文件复制到源VPS主机上,路径保持一致。

用Lsyncd实现本地和远程服务器之间实时同步

然后,重新进入到源VPS上,执行命令:ssh-copy-id root@your_remote_server_IP ,再次输入远程登录密码,确认添加密钥。

用Lsyncd实现本地和远程服务器之间实时同步

密钥添加成功后,现在你就可以在源VPS上直接使用:ssh root@your_remote_server_IP,不需要输入密码就可以进入到远程VPS了。然后按照上面本地同步的方法,创建日志和配置文件,注意替换你自己的源目录与目标目录路径。

settings = { insist = true, logfile = "/var/log/lsyncd/lsyncd.log", statusFile = "/var/log/lsyncd/lsyncd.status" } sync { default.rsyncssh, source = "/home/www", host = "115.28.65.xxx", targetdir = "/home/backup" }

如果你的目标VPS的端口不是默认的22,你可以用以下方法指定端口:

settings = { insist = true, logfile = "/var/log/lsyncd/lsyncd.log", statusFile = "/var/log/lsyncd/lsyncd.status" } sync { default.rsyncssh, source = "/home/www", host = "115.28.65.xxx", targetdir = "/home/backup" ssh = { port = 36000 } }

最后,重新启动: systemctl restart lsyncd。

用Lsyncd实现本地和远程服务器之间实时同步

稍等一会儿,你就可以看到目标目录已经有了同步过来的文件了。

用Lsyncd实现本地和远程服务器之间实时同步

同时,打开日志文件,你也可以看到操作记录。

用Lsyncd实现本地和远程服务器之间实时同步

Lsyncd其他模式示例(请根据实际替换路径与IP地址):

settings { logfile ="/usr/local/lsyncd-2.1.5/var/lsyncd.log", statusFile ="/usr/local/lsyncd-2.1.5/var/lsyncd.status", inotifyMode = "CloseWrite", maxProcesses = 8, } -- 远程目录同步,rsync模式 + rsyncd daemon sync { default.rsync, source = "/tmp/src", target = "syncuser@172.29.88.xxx::module1", delete="running", exclude = { ".*", ".tmp" }, delay = 30, init = false, rsync = { binary = "/usr/bin/rsync", archive = true, compress = true, verbose = true, password_file = "/etc/rsyncd.d/rsync.pwd", _extra = {"--bwlimit=200"} } } -- 远程目录同步,rsync模式 + ssh shell sync { default.rsync, source = "/tmp/src", target = "172.29.88.xxx:/tmp/dest", -- target = "root@172.29.88.xxx:/remote/dest", -- 上面target,注意如果是普通用户,必须拥有写权限 maxDelays = 5, delay = 30, -- init = true, rsync = { binary = "/usr/bin/rsync", archive = true, compress = true, bwlimit = 2000 -- rsh = "/usr/bin/ssh -p 22 -o StrictHostKeyChecking=no" -- 如果要指定其它端口,请用上面的rsh } } -- 远程目录同步,rsync模式 + rsyncssh,效果与上面相同 sync { default.rsyncssh, source = "/tmp/src2", host = "172.29.88.xxx", targetdir = "/remote/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 = 1234 } } 五、总结

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/601de7c70230d658b3c598851d1a68d3.html