有关设置Ghost博客的文章说使用scp从本地计算机复制到远程服务器:
scp -r ghost-0.3 root@*your-server-ip*:~/
Run Code Online (Sandbox Code Playgroud)
但是,Railscast 339:Chef Solo Basics用于scp向相反方向复制(从远程服务器到本地机器):
scp -r root@178.xxx.xxx.xxx:/var/chef .
Run Code Online (Sandbox Code Playgroud)
在相同的Railscast中,当作者想要将文件复制到远程服务器时(与第一个示例相同),他使用rsync:
rsync -r . root@178.xxx.xxx.xxx:/var/chef
Run Code Online (Sandbox Code Playgroud)
rsync如果scp要在两个方向上复制,为什么要使用该命令?有scp什么不同rsync?
Raf*_*afa 314
这些工具之间的主要区别在于它们如何复制文件.
scp基本上读取源文件并将其写入目标.它在本地或通过网络执行简单的线性复制.
rsync还可以在本地或通过网络复制文件.但它采用了特殊的delta传输算法和一些优化来使操作更快.考虑一下电话.
rsync A host:B
Run Code Online (Sandbox Code Playgroud)
rsync将检查A和B的文件大小和修改时间戳,如果匹配则跳过任何进一步的处理.
如果目标文件B已存在,则增量传输算法将确保仅通过线路发送A和B之间的差异.
rsync将数据写入到一个临时文件牛逼,然后替换目标文件乙与牛逼,使更新一下"原子",以所有可能使用过程中乙.
他们之间的另一个区别涉及调用.rsync有很多命令行选项,允许用户微调其行为.它支持复杂的过滤规则,以批处理模式运行,守护进程模式等scp只有几个开关.
总之,scp用于您的日常任务.您在交互式shell上偶尔键入一次的命令.它使用起来更简单,在这些情况下,rsync优化也无济于事.
对于重复性任务,如cron工作,请使用rsync.如上所述,在多次调用时,它将利用已传输的数据,执行速度非常快并节省资源.它是一个很好的工具,可以通过网络保持两个目录同步.
此外,在处理大文件时,请使用rsync该-P选项.如果传输中断,您可以通过重新发出命令将其恢复到停止位置.见Sid Kshatriya的回答.
Sid*_*iya 65
rysnc可用于在缓慢且不可靠的连接上运行.因此,如果您的下载在大文件中间中止,则rysnc将能够在再次调用时从其停止的位置继续.
使用 rsync -vP username@host:/path/to/file .
-P选项保留部分下载的文件,并显示进度.
像往常一样检查 man rsync
Ami*_*esh 24
差异b/w scp和rsync对不同参数的影响
scp :scp的优化和速度相对较低
rsync :rsync相对更优化和速度
scp :scp命令行工具无法从丢失的网络连接中恢复中止的下载
rsync:如果上面的rsync会话本身被中断,您可以通过键入相同的命令尽可能多地恢复它.rsync将自动重新启动它停止的传输.
http://ask.xmodulo.com/resume-large-scp-file-transfer-linux.html
$ scp source_file_path destination_file_path
Run Code Online (Sandbox Code Playgroud)
$ cd /path/to/directory/of/partially_downloaded_file
$ rsync -P --rsh=ssh userid@remotehost.com:bigdata.tgz ./bigdata.tgz
Run Code Online (Sandbox Code Playgroud)
该-P选项与--partial --progress允许rsync与部分下载的文件一起使用相同.该--rsh=ssh选项告诉rsync使用ssh作为远程shell.
scp更安全.你必须使用rsync --rsh=ssh它来像scp一样安全.
man文档了解更多:
rsyncover的主要功能scp(除了delta算法和加密(如果使用w / ssh的话)之外)还可以自动验证传输的文件是否已正确传输。Scp不会这样做,这有时可能会导致传输较大文件时损坏。因此,通常rsync是带有保证的副本。
Centos的联机帮助页在--checksum选项说明的结尾提到了这一点:
请注意,rsync始终通过检查在传输文件时生成的整个文件校验和来验证接收方是否正确重建了每个传输文件,但是自动传输后验证与该选项的之前无关-传输“是否需要更新此文件?”检查。