在没有完整 SSH 访问权限的情况下通过 SFTP 迁移网站的最有效方法是什么?

在没有完整 SSH 访问权限的情况下通过 SFTP 迁移网站的最有效方法是什么?

我需要将一个相当大的网站迁移到新的服务器上,以便为客户减少停机时间。

不幸的是,客户端的当前主机仅允许 SFTP 访问,而没有完全访问 SSH 的权限。我尝试通过 sshfs 挂载文件并使用 git 从那里克隆站点,但运行 git 命令最终变得非常慢。所需的停机时间对于客户端来说是不可接受的。

下载整个网站然后上传也是不切实际的,因为这需要几个小时。

我会使用 rsync,但据我了解,rsync 需要在服务器上拥有完全访问权限才能正常工作。

还有其他建议吗?

答案1

我能够通过使用 sshfs 将文件系统挂载到新服务器上的本地目录,然后运行 ​​rsync 到另一个目录,从而在本地使用 rsync。初始同步有点慢,但一旦同步一次,我在停机期间运行的后续同步就足够快了。

确保保险丝已安装并运行:

sshfs [user@]hostname:[directory] intermediate-directory

然后使用rsync同步到最终目录。

rsync -azP --delete intermediate-directory/ final-directory

第一次运行 rsync 时,必须下载所有内容,因此这可能需要相当长的时间。只要您不使用校验和或执行任何需要 rsync 下载整个文件的操作,下一次同步就会快得多,因为它只会下载更改的文件。我建议在您准备关闭网站之前运行一次该命令,这样可以保证拥有最新的文件。然后立即再次运行它。

相关内容