How does `scp` differ from `rsync`?
关于设置ghost blogging的一篇文章说,要使用
1 | scp -r ghost-0.3 root@*your-server-ip*:~/ |
然而,RailsCast 339:Chef Solo Basics使用
1 | scp -r [email protected]:/var/chef . |
在同一RailsCast中,当作者希望将文件复制到远程服务器(与第一个示例的方向相同)时,他使用
1 | rsync -r . [email protected]:/var/chef |
如果
这些工具之间的主要区别在于它们如何复制文件。
1 | rsync A host:B |
rsync 将检查A和B的文件大小和修改时间戳,如果匹配,则跳过任何进一步的处理。如果目标文件B已经存在,增量传输算法将确保只有A和B之间的差异通过线路发送。
rsync 将把数据写入一个临时文件t,然后用t替换目标文件b,使可能使用b的进程的更新看起来像"原子的"。
它们之间的另一个区别是调用。
总之,在日常任务中使用
对于重复性任务,如
此外,在处理大型文件时,使用
在慢速和不可靠的连接上运行RysNC很有用。因此,如果您的下载在一个大文件中间中止,那么当再次调用时,Rysnc将能够从停止的位置继续下载。
使用
-p选项保留部分下载的文件并显示进度。
照常检查
不同参数下的b/w scp和rsync差异
1。延迟性能scp :SCP的优化和速度相对较低rsync :rsync比较优化,速度也比较快。
2。中断处理Compared performance of different file transfer protocols over latency
scp :SCP命令行工具无法从丢失的网络连接恢复中止的下载rsync :如果上面的rsync会话本身被中断,您可以通过键入相同的命令来尽可能多地恢复它。rsync将自动重新启动中断的传输。
三。命令示例单链构象多态性
1 | $ scp source_file_path destination_file_path |
远程同步
1 2 | $ cd /path/to/directory/of/partially_downloaded_file $ rsync -P --rsh=ssh [email protected]:bigdata.tgz ./bigdata.tgz |
SCP更安全。您必须使用
了解更多的手册:
- SCP:http://www.manpagez.com/man/1/scp/
- 同步:http://www.manpagez.com/man/1/rsync/
EDOCX1上的
Centos手册提到了这一点,即
Note that rsync always verifies that each transferred file was
correctly reconstructed on the receiving side by checking a whole-file
checksum that is generated as the file is transferred, but that
automatic after-the-transfer verification has nothing to do with this
option’s before-the-transfer"Does this file need to be updated?"
check.
在我看来,
除了安全性之外,加密还对传输速度以及CPU开销有重大影响。(我的经验是,
查看这篇文章,了解何时
SCP最适合一个文件。对于较小的数据集,也可以结合使用
然而,当你开始处理更大的数量时,说:
- 媒体文件夹(40 GB)
- 数据库备份(28 GB)
- MP3库(100 GB)
现在,构建一个zip/tar.gz文件来与SCP传输到托管服务器的物理限制变得不切实际。
作为练习,您可以进行一些体操,例如将
然而,
rsync简化了这个过程,允许您在不消耗任何额外磁盘空间的情况下传输数据。
也,
连续(cron?)更新使用最小的更改与完全克隆副本的速度随着时间的推移进行大数据迁移。
DR
最好是在实际情况下思考。在我们的团队中,我们使用