专题(十一)scp

一. 背景

  通过使用scp,可以直接将一台linux服务器上的文件或目录拷贝到另外一个linux服务器上。 

  前提条件是:

      (1) 两台 linux 服务器在网络上可通;

      (2) 两台 linux 服务器 都安装了 ssh,可以使用 ssh 连接;

二. 知识

完整的知识说明可见 :https://www.runoob.com/linux/linux-comm-scp.html

scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
[-l limit] [-o ssh_option] [-P port] [-S program]
[[user@]host1:]file1 [...] [[user@]host2:]file2
  • user:表示远程服务器账号
  • host:表示远程服务器的IP或域名

三.示例

1、指定远程服务器端口进行拷贝(远程服务器的ssh端口不是默认端口)

注意:这里指定端口必须使用 -P ,是大P,不是小P 

2、将文件拷贝到远程服务器 

  在 1 示例中就展示了 将文件拷贝到远程服务器上。

 一般情况下,我们只要输入:

scp 文件名 远程服务器账号:远程服务器IP:目标目录

这样就可以把文件拷贝到目标服务器的目标目录(绝对地址)下。

3、将目录及其子目录/文件拷贝到远程服务器(包括目录本身)

 打开目标服务器的 /opt 目录,可以看到其下有刚刚拷贝过来的 consul 目录。

4、将指定目录中的子目录极其文件拷贝到远程服务器(不包括目录本身)

 从上图可以看到相较于 3 中, 要拷贝的目录后面 就加了个 /

打开目标服务器的 /opt/test,可以看到 consul 目录下的子目录极其文件都被拷贝过来了,包含 consul 这个根目录。

注意:若目标服务器上没有这个 test目录在 /opt 下,执行这个命令的时候,test 目录会被自动创建

四. 问题

(1) 提示 “list connection”

 此时需要按照 1 处理,首先通过以下方式查找接收端 的使用端口,因为它的 ssh 可能没有使用默认的端口 22

在接收端服务器上输入以下命令:

 通过命令可以看到上面 sshd 有 2 个进程,分别使用了 8442 端口 和  55555 端口,我们这里使用 55555 端口。然后用第三章节中的 1 中指定接收端来拷贝文件到远程服务器上。

原文地址:https://www.cnblogs.com/sandyflower/p/14186439.html