你也可以像 cp 命令一样,在 scp 命令中使用不同的选项,scp 的 man
帮助详细地阐述了不同选项的用法和用处。

注意:

  1. 必须先登录一台服务器,在服务器上操作一下步骤
  2. 以下命令执行成功后需要你输入连接的服务器的密码
# 命令形式:scp local_dir_file remote_server_address

# Demo,将当前目录下的filename文件上传到服务器的/home/test目录下
$ scp ./filename server_ip:/home/test
filename              100% 6419KB   3.1MB/s   00:02 

-o ssh_option
如果习惯于使用ssh_config(5)中的参数传递方式,

详细模式

利用 scp 命令的 -v 选项,你可以得到认证、调试等的相关细节信息。

图片 1

当我们使用 -v 选项的时候,一个简单的输出如下所示:

[root@localhost ~]# scp -v abc.txt admin@10.0.0.6:/home/admin
Executing: program /usr/bin/ssh host 10.0.0.6, user admin, 
command scp -v -t/home/admin
OpenSSH_7.1p1, OpenSSL 1.0.2d-fips 9 Jul 2015
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 56: Applying options for *
debug1: Connecting to 10.0.0.6 [10.0.0.6] port 22.
debug1: Connection established.
debug1: Server host key: ssh-rsa SHA256:LqBzkeGa6K9BfWWKgcKlQoE0u+gjorX0lPLx5YftX1Y
debug1: Next authentication method: publickey
debug1: Trying private key: /root/.ssh/id_rsa
debug1: Trying private key: /root/.ssh/id_dsa
debug1: Trying private key: /root/.ssh/id_ecdsa
debug1: Trying private key: /root/.ssh/id_ed25519
debug1: Next authentication method: password
admin@10.0.0.6's password:
debug1: Authentication succeeded (password).
Authenticated to 10.0.0.6 ([10.0.0.6]:22).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending command: scp -v -t /home/admin
Sending file modes: C0644 174 abc.txt
Sink: C0644 174 abc.txt
abc.txt                                                                                                                               100%  174     0.2KB/s   00:00
Transferred: sent 3024, received 2584 bytes, in 0.3 seconds
Bytes per second: sent 9863.3, received 8428.1
debug1: Exit status 0
[root@localhost ~]#

当我们需要拷贝一个目录或者文件夹的时候,我们可以使用 -r
选项,它会递归拷贝整个目录。

图片 2

从服务器复制目录(文件夹)到本地
scp -r root@172.0.0.1:/data/wwwroot/axsp.wclub8.cn /data/wwwroot/

说明:从172.0.0.1服务器上的/data/wwwroot/中复制 axsp.wclub8.cn目录 到本地的 /data/wwwroot/目录来。

注意:最后面的一个必需是目录,前面的必须是文件,才能成功批量复制,复制中会提示多次输入密码。

通过 -P 选项来指定远程主机的连接端口

scp 使用 ssh 命令来在两个主机之间传输文件,因为 ssh
默认使用的是22端口号,所以 scp 也使用相同的22端口号。

如果我们希望改变这个端口号,我们可以使用 -P(大写的 P,因为小写的 p
用来保持文件的访问时间等)选项来指定所需的端口号。

举个例子,如果我们想要使用2222端口号,我们可以使用如下的命令

[root@localhost ~]# scp -P 2222 abcd1 root@10.10.16.137:/root/
如果是复制文件则去掉 -r
scp root@172.0.0.1:/data/wwwroot/axsp.wclub8.cn/log.txt /data/wwwroot/
或
scp /data/wwwroot/axsp.wclub8.cn/log.txt root@172.0.0.1:/data/wwwroot/

Linux系统下访问服务器经常会碰到需要将服务器的文件拷贝到本地机器的问题,Linux系统中存在一个跨机器拷贝的命令scp。scp是secure
copy的简写,用于在Linux下进行远程文件拷贝,scp是跨服务器的并且传输是加密的。scp命令使用主要有两种形式:

-S program
指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项
scp命令的实际应用
本地复制远程文件:(把远程的文件复制到本地)
scp root@192.168.30.100:/val/test/test.tar.gz /val/test/test.tar.gz
远程复制本地文件:(把本地的文件复制到远程主机上)
scp /val/test.tar.gz root@192.168.30.100:/val/test.tar.gz
本地复制远程目录:(把远程的目录复制到本地)
scp -r root@192.168.30.100:/val/test/ /val/test/
远程复制本地目录:(把本地的目录复制到远程主机上)
scp -r /val/ root@192.168.30.100:/val/
注:复制的是目录的话就要加-r参数
当同时有多个服务器的文件要复制到本地目录:
scp root@192.168.0.1:/var/cp1.tar.gz root@192.168.0.2:/var/cp2.tar.gz
/var/tmp/

限制命令使用的带宽,指定的单位是 Kbit/s

如下所示,我们可以使用 -l 参数来指定 scp
命令所使用的带宽,在此我们将速度限制为512kbit/s。

图片 3

从本地复制目录(文件夹)到服务器上
scp -r /data/wwwroot/axsp.wclub8.cn root@172.0.0.1:/data/wwwroot/

说明:从本地服务器上的/data/wwwroot/中复制 axsp.wclub8.cn目录 到 172.0.0.1服务器上的 /data/wwwroot/目录中
# 命令形式:scp remote_server_address local_dir_file

# Demo,将服务器的/home/test/目录下的filename文件拷贝到本机的当前目录下
$ scp server_ip:/home/test/filename ./

-v
详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。

选择加密数据的加密方式

scp 默认使用 AES-128 的加密方式,如果我们想要改变这个加密方式,可以通过
-c(小写的 c) 参数来指定其他的加密方式。

图片 4

现在你可以利用 scp(Secure
copy)命令在你所属网络中的两个节点之间安全地拷贝文件了。

scp

scp 是secure
copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且
scp传输是加密的。可能会稍微影响一下速度。当你服务器硬盘变为只读 read
only system时,用scp可以帮你把文件移出来。另
外,scp还非常不占资源,不会提高多少系统负荷,在这一点上,rsync就远远不及它了。虽然
rsync比scp会快一点,但当小文件众多的情况
下,rsync会导致硬盘I/O非常高,而scp基本不影响系统正常使用。
1.命令格式:
scp [参数] [原路径] [目标路径]

2.命令功能:
scp是 secure copy的缩写,
scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。linux的scp命令可以在linux服务器之间复制文件和目录。

3.命令参数:

  • 将文件从本地上传到服务器上,在本地执行scp命令

-r
递归复制整个目录。

示例输出

图片 5

scp 可选参数如下所示:

 -B      采取批量模式(避免询问密码或口令)
 -C      启用压缩。通过指明 -C 参数来开启压缩模式。
 -c 加密方式
         选择在传输过程中用来加密的加密方式 这个选项会被直接传递到 ssh(1)。
 -F ssh 配置
         给 ssh 指定一个用来替代默认配置的配置文件。这个选项会被直接传递到 ssh(1)。
 -l 限速
         限制命令使用的带宽,默认单位是 Kbit/s。
 -P 端口
         指定需要的连接的远程主机的端口。  
         注意,这个选项使用的是一个大写的“P”,因为小写的“-p”已经用来保留目标文件的时间和模式相关信息。(LCTT 译注:ssh 命令中使用小写的“-p”来指定目标端口。)
 -p      保留文件原来的修改时间,访问时间以及权限模式。
 -q      静默模式:不显示来自 ssh(1) 命令的进度信息,警告和诊断信息。
 -r      递归拷贝整个目录。
         注意,scp 命令在树形遍历的时候同样会跟随符号连接,复制所连接的文件。
 -v      详细模式。scp 和 ssh(1) 将会打印出处理过程中的调试信息。这可以帮助你调试连接、认证和配置方面的问题。
  • -1 强制scp命令使用协议ssh1
  • -2 强制scp命令使用协议ssh2
  • -4 强制scp命令只使用IPv4寻址
  • -6 强制scp命令只使用IPv6寻址
  • -B 使用批处理模式(传输过程中不询问传输口令或短语)
  • -C 允许压缩。
  • -p 保留原文件的修改时间,访问时间和访问权限。
  • -q 不显示传输进度条。
  • -r 递归复制整个目录。
  • -v 详细方式显示输出。
  • -c cipher 以cipher将数据传输进行加密,这个选项将直接传递给ssh。
  • -F ssh_config 指定一个替代的ssh配置文件,此参数直接传递给ssh。
  • -i identity_file
    从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
  • -l limit 限定用户所能使用的带宽,以Kbit/s为单位。
  • -P port port是指定数据传输使用的端口号
  • -S program 指定加密传输时所使用的程序。

scp是 secure copy的缩写,
scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。linux的scp命令可以在linux服务器之间复制文件和目录.
scp命令基本格式:

Author

发表评论

电子邮件地址不会被公开。 必填项已用*标注