如何使用 scp 从服务器提取文件?

如何使用 scp 从服务器提取文件?

我在机器 A 上,想从机器 B 中提取文件。

A$ scp <myuserid>@hostB:<path of file in B> .

它说:

scp: <path of file in B>: No such file or directory

但在B机器上,这个文件存在于这个路径中。

出了什么问题?

答案1

您没有指定任何文件:您必须在冒号后添加文件(带有路径):

A$ scp <myuserid>@hostB:/absolutepath/file .

或者

A$ scp <myuserid>@hostB:relativepath/file .

相对于您的主目录的路径。

如果您没有指定不同的用户(即 A 和 B 上的用户相同),则不需要@

A$ scp hostB:/path/file .

答案2

$ scp username@remoteip:remote_location_file /location/where/you/save

就像注释一样:这仅在复制文件时有效。如果要复制目录,请使用

$ scp -r username@remoteip:remote_location_directory /location/where/you/save

我们已经在第二个命令中看到了递归选项。列出了此选项以及您可以根据需要使用的其他选项从手册页:

  • -r
    递归复制整个目录。

  • -P port
    指定要连接到远程主机上的端口。注意这个选项是用大写的“P”写的,因为-p已经被保留用于在rcp中保留文件的时间和模式。

  • -p
    保留原始文件的修改时间、访问时间和模式。

  • -v

    详细模式。使 scp 和 ssh 打印有关其进度的调试消息。这有助于调试连接、身份验证和配置问题。

答案3

使用正确的 scp 路径

scp ssh://user@hostname/tmp/foo.txt .

答案4

如果有 DMZ 用户和密码,则可以轻松进行双向 SCP 您在本地计算机上:从 DMZ 到本地 Linux 计算机(拉取)。意味着复制到您当前登录的密码abc.text中。folder2

scp user@111111:folder1/folder2/abc.txt .

它会要求输入密码

就这样

现在您想要将文件夹、子文件夹和文件从本地计算机发送到 DMZ:

usr@localmachine:~/abc/defs>  scp -r folder/ usr@111111:vkrishna/docker/

将会再次询问密码

:是远程计算机的根文件夹,vkrishna 是其中的一个文件夹,也是 docker 子文件夹。本地defs文件夹中有一个名为folder我们要完全转移的文件夹。

喜欢/abc/defs/folder

相关内容