作者:
Carl Weaver
创建日期:
23 二月 2021
更新日期:
1 七月 2024
![两台电脑之间传文件的两种方法(局域网或者网线)](https://i.ytimg.com/vi/KvLx2HGhGew/hqdefault.jpg)
内容
在 Linux 多服务器环境中,许多任务涉及将一个或多个文件从一台服务器移动到另一台服务器。根据您必须移动的文件数量,有几个命令可以帮助您......让我们在这些讨论中假设我们的服务器是 alice 和 madhat,我们在 alice 的用户是 rabbit,我们在 madhat 的用户是 fieldmouse。
脚步
1 对于简单文件,请尝试“scp”命令。 您可以将其用作“推送”或“拉取”命令,但让我们先将文件推送到另一台服务器。在 alice 上使用命令“scp myfile fieldmouse @madhat:thatfile”。这会将文件复制到用户标识“thatfile”下的其他系统。如果您登录到不同的系统,您可以使用命令“scp rabbit @ alice: myfile thatfile”轻松提取文件并获得相同的结果。
2 要复制整个目录,我们可以再次使用“scp”命令。 这次我们将添加 -r 开关以强制副本“递归”执行。 “scp -r mydir fieldmouse @madhat :.” - 将整个“mydir”目录复制到另一个系统,包括其所有内容和附加目录。 madhat 上的目录仍将称为 mydir。
- 3 如果您要复制一大堆文件和目录怎么办? 您可以使用“tar”命令创建一个文件,然后像上面一样复制该文件,然后使用 tar 将其分发到另一台服务器......但它看起来......不像 Unix。一定有办法一步完成,对吧?嗯,当然!
E 输入您最喜欢的 shell 的管道。我们仍然可以使用 tar 来打包我们想要的文件,然后使用 SSH 将它们放到另一个系统上(这是 SCP 在 shell 下使用的),另一方面,使用 tar 将文件分发回来。但是为什么要浪费时间和空间来创建 tar 文件本身,因为我们可以简单地创建一个跨越两个系统的管道并通过它传递 tar 数据?
使用与上例相同的目录,尝试“tar -cf - mydir / * | ssh fieldmouse @ madhat” tar -xf - “
提示
- 当然,还有其他方法可以做到这一点。 Linux 充满了工具。您的评级可能会发生变化。
- 在使用上述命令时,您应该根据您的网络配置和环境更改用户名/主机名/文件目录名称。上面的命令只是如何执行命令将文件复制到服务器的示例。
警告
- 确保您使用的不同系统上的 ID 及其 GID 相同(不仅仅是用户名)。如果不是这种情况,就会出现有趣的安全问题。