rsync
命令和 scp
命令一样,都可以实现在 Linux、Windows 和 Mac 之间的文件互传。
scp -r /local/folder/path/ remoteusername@remoteuserip
但是有时候 scp
命令不太给力,常常会给出如下图所示的提示。(我刚刚就遇到了)
说是被阻塞了。我首先想到了是不是对方的 22 端口(默认)被防火墙给墙了,然而在检查过后发现并没有这回事,至少不影响正常的文件传输。
接着我想是不是传输速度的问题。于是我使用 -l
参数对 scp
命令进程进行限速。
scp -l 8092 ... # 相同部分略了,8192 = 8*1024
嗯。这次问题确实得到了解决。但是它不完美,有时候可以,但是也有时候不行……对此,我们有一个更好的替代方案。
rsync -avz --process /local/folder/path remoteusername@remoteuserip
其中,a
代表归档,v
代表冗余,z
代表在传输过程中压缩数据。后面跟的 --progress
取决于你,代表在传输中打印相应过程。
rsync
的参数远不止这些,但是从实用性角度出发,这就够了。