rsync是一个非常好用的文件同步工具, 但是无法进行实时同步, 但通过lsyncd+rsync可以完美的解决海量文件实时备份, lsyncd其实可以理解为inotify + rsync的重新打包整合, 现在参考部分教程简单记录一下.
主要目的 从主服务器上实时增量备份文件到另外一台服务器上.
先在主服务器上创建无密码的ssh证书.
1 | cd /root/ |
一直按回车就会得到两个ssh证书文件, 一个id_rsa秘钥, 一个id_rsa.pub公钥.
查看公钥证书
1 | cat /root/.ssh/id_rsa.pub |
然后去备份服务器上
1 | cd /root/ |
然后把之前在主服务器上创建的公钥id_rsa.pub内容复制到这里
把公钥增量添加到~/.ssh/authorized_keys里面
1 | cat /root/id_rsa.pub >> /root/.ssh/authorized_keys |
再更改公钥文件权限
1 | chmod 600 /root/.ssh/authorized_keys |
更改sshd配置文件
1 | vi /etc/ssh/sshd_config |
把#AuthorizedKeysFile .ssh/authorized_keys前面的#去掉, 让其保持为
1 | AuthorizedKeysFile .ssh/authorized_keys |
然后重启备份服务器的ssh
1 | service sshd restart |
设置完成后再会主服务器 先测试一下是否可以免密码登录备份服务器
1 | ssh root@备份服务器的ip |
如果能正常登录就可以.
然后在备份服务器上操作
1 | vi /etc/rsyncd.conf |
配置如下
1 | [backup] |
再设置rsync自动启动
1 | systemctl enable rsyncd.service |
从再退出, 返回主服务器.
1 | exit |
返回主服务器后 安装lua lua-devel
1 | yum install lua lua-devel -y |
编辑配置lsyncd的配置文件
1 | vi /etc/lsyncd.conf |
参考配置文件如下
1 | settings { |
设置开机启动并运行
1 | systemctl enable lsyncd.service |
然后去原服务器的/home/backup目录下创建一个文件看看会不会自动同步到备份服务器的/home/backup目录下
如果无法运行, 查看状态:
1 | systemctl status lsyncd.service |
提示
Error: Terminating since out of inotify watches Consider increasing /proc/sys/fs/inotify/max_user_watches
这个是超过实例可监听的最大上限, 编辑sysctl.conf文件
1 | vi /etc/sysctl.conf |
把监听值改大一点, 在下面添加
1 | fs.inotify.max_user_watches = 999999999 |
再重启lsyncd服务
1 | sysctl -p |
本教程参考以下链接 https://www.jianshu.com/p/0ecac4f6baf2 https://renwole.com/archives/1001 https://linux.cn/article-5849-1.html https://github.com/axkibe/lsyncd https://axkibe.github.io/lsyncd/ http://seanlook.com/2015/05/06/lsyncd-synchronize-realtime/