Rsync+Inotify实现文件同步方案

1.数据同步模式

1.1推模式

推模式是指数据源服务器主动将要同步的文件发送给其他服务器。该模式优点是同步较及时,缺点是源服务器开销较大,因此该模式适用于需要同步的服务器的数量较少的情况。

1.2拉模式

拉模式是指需要同步的服务器主动拉取数据源服务器的数据。该模式优点是数据源服务器的开销低,但是缺点是拉取数据需要等待源服务器处理会有延迟,该模式适合同步服务器数量较多的情况。

1.3模式优化

当需要同步的服务器数量较多时,可以通过在源服务器和同步服务器间增加一层或多层,逐级同步到最终的同步服务器上,这样可以有效缓解同步压力。

2.Scp和Rsync

scp:远程文件复制命令,缺点是不胜任大文件的传输,因为它在传输复制前会先检查和统计数据,非常耗费时间。

Rsync:功能强大;增量备份、符号链接、硬链接、用户与用户组等。而且是边复制边统计。

3.Rsync安装与命令使用

默认情况Ubuntu安装了rsync,我们通过rsync命令已经可以实现文件的备份和同步,其格式是:

rsync [选项] [源文件] [目标文件]

常用例子:
rsync -azP --delete user@ip:/path/file /path/file

这里的参数a包括多个参数的含义,非常常用,可以百度之;z表示压缩传输,节省带宽,但是需要压缩和解压,消耗cpu;P表示显示文件传输进度详情。

通过上述命令,我们可以进行同步,但是我们用到了user这个系统用户,在执行这条命令的时候,会要求我们输入user的密码,所以这条命令是需要交互而不能在后台执行的,这样会大大限制了我们的使用场景。尽管我们可以通过配置sshkey的方式来达到无输入密码执行,但是依赖于系统账号是会有安全风险的,那么能不能不使用系统用户直接达到无交互执行呢?答案是使用rsync服务。

4.Rsync服务

要启动rsync服务,首先我们需要一个/etc/rsyncd.conf配置文件,默认情况下/etc下没有这个配置文件,我们可以copy示例文件(系统自带的)到/etc下:

cp  /usr/share/doc/rsync/examples/rsyncd.conf  /etc;

然后可以对配置文件进行一些需要的修改:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值