基于 rsync 实现文件远程同步
两台机器之间同步文件常用的方式有 scp
和 rsync
两种,两者的主要区别在于:
scp
会将整个文件进行传输;rsync
只对差异文件做更新(通过比较最后修改时间和文件的大小),支持分块传输,可以只传输修改的部分scp
是加密传输;rsync
不是加密传输
在项目中我使用的是 rsync --daemon
的方式进行文件同步,这种方式需要在目标同步机器上的 rsyncd.conf
配置文件中配置模块名,存储路径等信息。具体配置方法参考:参考
我的测试用例中使用的配置项是
1 | uid = 0 |
模块名称为 user
,文件的默认保存路径为 /data
服务器通过 rsync --daemon
启动守护进程
在另一台机器上通过指令
1 | rsync -avz [local_path] [server_address]::user |
可以将local_path
目录下的文件增量写入到目标服务器的/data
目录下