sshfs 目录中最快的文件复制(rsync?)

sshfs 目录中最快的文件复制(rsync?)

我在远程服务器上有一个目录remote1,通过 sshfs 安装。我正在远程目录中安装一些文件的新版本,这些文件相当大(~50M)。

我目前正在使用

rsync -a --in-place local/file.so remote1/file.so~new

将文件复制到远程目录中,然后

rsync -a --in-place remote1/file.so~new remote1/file.so

第二个 rsync 比我想要的要慢我怀疑它是通过 ssh 下载文件数据,然后重新上传它们,而不是在远程系统上复制。

我更愿意保留该file.so~new文件作为备份(我在新文件和原始文件之间切换),这就是我不使用mv.

我在远程主机上没有 rsync 程序,这就是为什么我没有使用标准 rsync 命令,但我使用 rsync 来避免在文件已经就位时重新复制。

是否有命令行选项可以提高复制速度?使用 scp 或 sftp 会更好吗?如果是这样,我将如何检查文件是否未更改(时间和大小),以便在文件已经就位时我不会进行不必要的复制。

我最新的改进是上传两个新副本,然后用于mv重命名其中一个。难道就没有更好的办法了吗?

答案1

rsync认为它正在访问同一主机上的源和目标时,它不会使用增量传输。相反,它只是复制整个文件。

这就是你的情况。因此,您的第二个命令是将file.so~newssh 保险丝链接复制到本地主机,然后立即将其复制回来。

用这个代替有什么问题吗?

mv remote1/file.so~new remote1/file.so

为了获得最快的速度,您不应该尝试运行rsyncsshfs而是允许它直接与远程服务器通信(通过ssh)。然后您可以使用简单的变体:

rsync -av local/file.so remote:path/to/file.so

新文件在完全复制后才会安装,并且您的优势在于能够使用旧库作为新库的基础。

相关内容