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;
然后可以对配置文件进行一些需要的修改: