CH-J Server Manager通过 SSH 管理服务器
菜单
全部指南与文章 →

不使用 SCP,在两台 Linux 服务器之间通过 SFTP 传输文件

通过自己的电脑在两台远程服务器之间复制文件,处理冲突,并用 SHA-256 验证结果。

服务器之间传输数据的两种方式

可以让一台服务器直接连接另一台,也可以由自己的电脑在两者之间中转数据。直接连接通常更快,但源服务器必须能通过网络访问目标服务器,并持有其登录凭据,而你可能不希望把这些凭据留在服务器上。中转方式不需要这两个条件:只有你的电脑持有凭据,两台服务器也无需能相互访问。代价是所有数据都要经过你的网络连接。

从命令行中转

scp 的 -3 选项会通过本地电脑在两台远程主机之间复制文件。这适合单次复制,但不提供队列;如果传输中断,需要你自行重新运行。

scp -3 admin@source.example:/srv/data/archive.tar.gz admin@target.example:/srv/data/

验证复制结果

在删除源服务器上的任何内容之前,先比较两台服务器上的校验和。SHA-256 值一致表明文件已完整传输,仅凭文件大小相同无法证明这一点。

ssh admin@source.example sha256sum /srv/data/archive.tar.gz
ssh admin@target.example sha256sum /srv/data/archive.tar.gz

提前确定冲突处理方式

进行较大规模的传输前,应决定目标位置已存在同名文件时如何处理:覆盖、保留两者,还是跳过。检查目标服务器的可用空间以及目标目录的权限。以普通用户身份复制不会保留文件的所有者,因此恢复应用程序后,可能还需要修正其文件所有权。

CH-J Server Manager 中的双面板操作

在 Alpha 0.1.1 中,File Manager 提供一到三个面板,每个面板可显示本地磁盘或任意已打开的 SSH 会话。可以使用键盘、拖放或右键菜单,在面板之间复制或移动文件。数据通过你的电脑从一个 SFTP 会话流式传输到另一个会话,不会存储到电脑磁盘上;传输使用队列,支持暂停、继续、取消和冲突处理。移动文件时,只有在 SHA-256 比对一致且源文件未发生变化的情况下,才会删除源文件。

需要了解的限制

传输并非直接在服务器之间进行,因此速度取决于你的电脑与两台服务器之间的网络连接,电脑也必须保持连接。只有使用 sudo 才能读取的文件,无法通过这种方式在服务器之间复制。Beta 0.1.0 不包含多面板 File Manager。

详细文档

OpenSSH: sftp →

OpenSSH: scp (-3) →

生物识别解锁与安全 →