我需要将一个相当大的网站迁移到新的服务器上,以便为客户减少停机时间。
不幸的是,客户端的当前主机仅允许 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 下载整个文件的操作,下一次同步就会快得多,因为它只会下载更改的文件。我建议在您准备关闭网站之前运行一次该命令,这样可以保证拥有最新的文件。然后立即再次运行它。