一、这玩意儿是干啥的?
Rsync 就是个文件同步工具,能把文件从一台机器拷到另一台机器。好比你有两台电脑,想把A电脑的文件备份到B电脑,Rsync就能干这个活。
sersync 是个监控工具,它能盯着你指定的文件夹,只要里面的文件有啥变化(新增、修改、删除),立马就能发现。
俩货加一起 :sersync负责盯梢,一发现变化就叫Rsync去同步,这样就实现了实时同步。
二、核心概念(说人话版)
同步方式
-
推(push):服务器主动把数据发给备份机(服务器累点,适合机器少的情况)
-
拉(pull):备份机主动去服务器上取数据(备份机累点)
备份类型
-
全量备份:把所有文件都拷一遍
-
增量备份:只拷上次备份后修改过的文件(Rsync默认干这个)
三、为啥要用Rsync+sersync?
只用Rsync有个毛病:它不知道哪些文件变了,每次都得扫描整个目录,文件多了就慢得要死。
加了sersync就不一样了:
-
sersync能精确知道哪个文件变了
-
Rsync只同步变化的部分
-
效率高、速度快
四、怎么部署?(简单版)
1. 先装Rsync(两台机器都要装)
bash
yum install rsync xinetd -y
rsync --daemon # 启动服务
2. 配置备份服务器(收数据的那台)
编辑 /etc/rsyncd.conf,大概意思就是:
-
我是备份机,IP是xxx
-
我的备份目录在
/data/backup -
只有指定IP能连我
-
登录用户名密码是啥
3. 配置同步服务器(发数据的那台)
装sersync,修改配置文件:
-
告诉它要监控哪个目录
-
告诉它备份机IP和用户名密码
4. 启动
bash
/opt/sersync/sersync2 -d -r -o /opt/sersync/confxml.xml
五、出问题了咋排查?(故障排查)
先看三样东西
-
服务活着没 :
ps aux | grep sersync和ps aux | grep rsync -
端口通不通 :
telnet 备份机IP 873(873是Rsync默认端口) -
防火墙关没关:要么关防火墙,要么开放873端口
常见问题
-
连不上:多半是防火墙拦着,或者Rsync没启动
-
没权限:检查目录权限,检查密码文件权限是不是600
-
不同步:看看sersync监控的目录对不对,手动touch个文件试试
六、安全加固(防坏人)
基础防护
-
别用root跑服务,建个专用用户
-
密码文件权限必须600(只有root能看)
-
限制IP访问,只让指定网段连
高级防护
-
用SSH加密传输:数据在网络上跑的时候是加密的,别人截获了也看不懂
-
防火墙限制:只开放必要端口,只允许必要IP
-
Chroot隔离:就算被攻破了,也跑不出指定目录
日常监控
-
看日志,发现有异常删除、频繁登录就报警
-
定期检查配置文件有没有被改过
-
密码要定期换
七、一句话总结
Rsync负责拷文件,sersync负责盯文件,俩货配合就能实现文件实时同步。装的时候注意权限,用的时候注意防火墙,安全方面多用点心,别让人钻了空子。