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