Linux管理员应该熟悉命令行环境。由于在Linux服务器中通常不安装GUI模式。SSH可能是使得Linux管理员通过远程安全方式管理服务器的最流行协议。与SSH命令一起内建的是SCP命令。SCP用于用安全方式在服务器之间复制文件。

SCP命令的基本语法

以下命令将读成在本机上复制一个文件source_file_name到在以用户username登录的destination_host机器上文件夹destination_folder中。

scp source_file_name username@destination_host:destination_folder

在SCP命令中有很多你能够使用的参数。这里是在日常使用中可能使用的参数。

使用-v参数提供scp过程的详细信息

不带参数的基本scp命令将在后台复制文件。除非过程结束或者某个错误发生,否则你看到不任何东西。

你可以使用"-v"参数打印调试信息到屏幕。它可以帮助你调试连接,验证和配置问题。

[root@rockygu test]# scp -v test.tar.gz  root@192.168.50.228:/root/want/
Executing: program /usr/bin/ssh host 192.168.50.228, user root, command scp -v -t /root/want/
OpenSSH_8.0p1, OpenSSL 1.1.1k  FIPS 25 Mar 2021
debug1: Reading configuration data /etc/ssh/ssh_config
...
test.tar.gz                                                                       100% 2951KB 140.8KB/s   00:20
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: channel 0: free: client-session, nchannels 1
Transferred: sent 3025856, received 3044 bytes, in 21.1 seconds
Bytes per second: sent 143240.0, received 144.1
debug1: Exit status 0

提供来自源文件的修改时间,访问时间和模式

"-p"参数将做这件事。一个预计时间和连接速度将在屏幕上出现。

[root@rockygu test]# scp -p test.tar.gz  root@192.168.50.228:/root/want/
root@192.168.50.228's password:
Permission denied, please try again.
root@106.13.171.84's password:
test.tar.gz                                                                                                            100% 2951KB 141.9KB/s   00:20
[root@rockygu test]# ls -l test.tar.gz
-rw-r--r-- 1 root root 3021419 Jul  3 09:04 test.tar.gz

在目标位置上:

-bash-4.2# ls -l
total 2952
-rw-r--r-- 1 root root 3021419 Jul  3 09:04 test.tar.gz

使用-C参数使得文件传输更快

能够加速你文件传输的其中一个参数是"-C"参数。"-C"参数将在工作前压缩你的文件。唯一的事情是只在网络中压缩。当文件到达目的服务器时,它将变到与压缩发生前的原先大小一样。

看一下以下命令。它使用一个17MB的文件。

[root@rockygu test]# scp -pv base.tar 192.168.50.228:/root/want
Executing: program /usr/bin/ssh host  192.168.50.228, user (unspecified), command scp -v -p -t /root/want
...
Transferred: sent 17318804, received 5296 bytes, in 123.0 seconds
Bytes per second: sent 140797.3, received 43.1
debug1: Exit status 0

不带"-C"参数复制文件将产生123.0秒。你把这个结果与使用"-C"参数的命令做比较。

[root@rockygu test]# scp -Cpv base.tar  192.168.50.228:/root/want
Executing: program /usr/bin/ssh host  192.168.50.228, user (unspecified), command scp -v -p -t /root/want
...
Transferred: sent 3050816, received 5284 bytes, in 21.2 seconds
Bytes per second: sent 144019.6, received 249.4
debug1: Exit status 0
debug1: compress outgoing: raw data 17311149, compressed 3038822, factor 0.18
debug1: compress incoming: raw data 1867, compressed 1205, factor 0.65

如你所见,当你使用压缩时,传输过程在XX秒完成。它比不使用"-C"参数快XX倍。如果你在网络中复制大量文件,"-C"参数将帮助你减少你需要的整个时间。

我们应该注意的事情是压缩方法不是对所有文件有效。当源文件已经被压缩时,你将在那里没有改善。诸如.zip, .rar, .iso文件将不受"-C"参数影响。

更改SCP密码来加密文件

默认SCP使用"AES-128"来加密文件。如果你想要另一个密码来加密它,你可以使用"-c"参数。看一下以下命令。

[root@rockygu test]# scp -c aes256-ctr  test.tar.gz  root@192.168.50.228:/root/want/
root@192.168.50.228's password:
test.tar.gz                                                                       100% 2951KB 142.3KB/s   00:20

以上命令告诉SCP使用aes256-ctr算法加密文件。请注意这个参数使用"-c"不是"-C"。

限制于SCP命令一起的带宽使用

另一个有用的参数是"-l"参数。"-l"参数将限制使用的带宽。如果你写了一个复制大量文件的自动化脚本,但你不想带宽被SCP进程耗尽,这个参数是有用的。

[root@rockygu test]# scp -l 80 test.tar.gz  root@192.168.50.228:/root/want/
192.168.50.228's password:
test.tar.gz                                                                       100% 2951KB  10.0KB/s   04:54

在-l参数后面的80值表示我们限制SCP进程的带宽只有10KB/s。要记住的一件事情是用Kilobits/sec(kbps)指定带宽。它表示8比特等于1字节。

SCP要以KB/s计数。所以你想要限制SCP最大带宽只有10KB/s,你需要设置它为10*8=80。

为与SCP一起使用指定特定端口

通常,SCP是使用22作为默认端口。但出于安全原因,你会更改这个端口为另一个端口号。例如,我们使用6666。则命令应该像这样:

[blctrl@areadetector ~]$ scp -P 6666 edm-master.zip  root@192.168.50.74:/root
root@192.168.50.74's password:
edm-master.zip                                                                    100% 3320KB  52.4MB/s   00:00

由于"p"已经用于保留时间和模式,确认它使用大写"P"。

在目录中递归复制文件

有时我们需要复制目录以及在它中的所有文件/目录。如果我们在一条命令中做它将更好。SCP使用"-r"选项支持那种场景。

[root@rockygu ~]# scp -r test root@106.13.171.84:/root/want
root@106.13.171.84's password:
guid.txt                                                                          100%    0     0.0KB/s   00:00
perm.txt                                                                          100%    0     0.0KB/s   00:00
suid.txt                                                                          100%    0     0.0KB/s   00:00
.hidden                                                                           100%    0     0.0KB/s   00:00
rocky.sh                                                                          100%    0     0.0KB/s   00:00
rock.html                                                                         100%    0     0.0KB/s   00:00
rocky.c                                                                           100%    0     0.0KB/s   00:00
Rock.txt                                                                          100%    5     0.1KB/s   00:00
1.txt                                                                             100%    0     0.0KB/s   00:00
2.txt                                                                             100%    0     0.0KB/s   00:00
3.txt                                                                             100%    0     0.0KB/s   00:00
4.txt                                                                             100%    0     0.0KB/s   00:00
5.txt                                                                             100%    0     0.0KB/s   00:00
test.tar.gz                                                                       100% 2951KB 141.7KB/s   00:20

当复制过程结束时,你将在目标服务器上找到一个带有其所有文件的名为"test"目录。将自动创建文件夹"test"。

禁止进度条和警告/诊断信息

如果你选择不看来自SCP的进度条和警告/诊断消息,你可以使用"-q"参数禁用它。这是示例:

[root@rockygu ~]# scp -q test/test.tar.gz  root@106.13.171.84:/root/want
root@106.13.171.84's password:
[root@rockygu ~]#

如你所见,在你输入密码后,没有有关SCP进度的信息。在这个过程结束后,你将再次看到一个提示。

在Linux中传输文件/目录的scp命令相关推荐

  1. linux中对文件进行归档,linux归档压缩命令 linux中对文件进行归档的命令为

    13. 为了将当前目录下的归档文件myftp.tgz解压缩到/tmp目录下,用户可以使用命令 A. tar xvzf myftp.tgz –C /tmp B. tar : xvzf : myftp.t ...

  2. linux用命令设置读权限,linux中的文件权限和chmod命令的使用

    1.linux中的文件权限 linux中用ls -al列出文件列表时,会看到第一列有rwx这样的字样,这个表示该文件的权限设置属性.在linux中,权限划分主要分为三种身份:所有者(owner或者us ...

  3. linux c语言文件拷贝_linux - scp命令远程文件拷贝

    简介 scp就是secure copy,是用来进行远程文件拷贝的.数据传输使用ssh1,并且和ssh1使用相同的认证方式,提供相同的安全保证. scp只要通过sshd服务进行通讯,而且要求两端都有sc ...

  4. linux中传输文件方法,Linux快速传输文件几种方法

    直接scp传输 [root@zenoss29 zenoss29]# time scp  MySQL-server-5.5.18-1.rhel5.i386.rpm  MySQL-client-5.5.1 ...

  5. linux中查看文件内容常用的命令

    文章目录 前言 cat more less head tail 前言 大家都知道查看文件,我们常常使用cat,但是这个命令的缺点在于会显示所有文件内容,对于一个大文件来说,也许我们只想看前面几行,这个 ...

  6. Linux中的文件复制:cp和scp

    在使用操作系统的使用过程中,常常需要复制文件到本地或者传输文件到其他电脑上,这时候用到两个命令cp和scp. cp命令用来复制文件或者目录.scp是secure copy的简写,用来在Linux下进行 ...

  7. Linux中的文件传输优化

    Linux中的文件传输优化 1.scp远程传输命令 1.1把本地文件复制到远程主机 1.2把远程文件复制到本地 2.rsync远程同步命令 2.1 rsync和scp对比 2.2 rsync用法 3. ...

  8. linux复制文件scp命令,Linux 中的文件复制cp命令和scp命令详解

    Linux 中的文件复制cp命令和scp命令详解 在使用操作系统的使用过程中,常常需要复制文件到本地或者传输文件到其他电脑上,这时候用到两个命令cp和scp. cp命令用来复制文件或者目录.scp是s ...

  9. linux下cp复制目录时排除某些目录的方法分享,CP / SCP / RSYNC 如何在Linux中排除特定目录?...

    对于任何系统管理员或一般Linux操作系统用户而言,在服务器之间执行文件复制操作都是一项常见任务.在将文件从一个系统复制到另一个系统时,由于某些特定原因,我们可能需要排除某些文件和目录被复制.即使在同 ...

最新文章

  1. 参加软件测试培训需要学什么技术
  2. 今日头条员工感慨:30岁以上既可怜又可悲,宁愿选择23岁的,便宜、听话、好用!...
  3. STM32-USART控制led和蜂鸣器
  4. web后端轻量级框架flask基础调用程序模板
  5. 成功解决ProxyError: Conda cannot proceed due to an error in your proxy configuration.Check for typos an
  6. Java集合Collection与List的关系、常见用法
  7. mybatis学习(51):扩展集
  8. Kubernetes-NodePort(十七)
  9. JAVA读锁不使用效果一样_Java使用读写锁替代同步锁
  10. 算法思想——贪心(详细举例理解~)
  11. map std 浮点数索引_C std :: map持有任何类型的值
  12. 帝国CMS操作类型一览表
  13. gps天线拆解图片_威旺M20如何拆解中控导航及找出gps天线
  14. MODIS数据下载——CSV模式直接下载hdf文件
  15. 项目管理高手常用的10张图表推荐!(小白也能懂的项目管理)
  16. 计算机电源 通电,笔记本电脑开不了机,通电后电源指示灯不亮
  17. android 电视 vob格式转换,Android手机、Android智能电视、Android平板电脑视频和音频转换器---佳佳安卓视频格式转换器...
  18. 43_sql注入绕waf
  19. PgSql之操作JSON类型字段
  20. 电脑用久了卡,学会这四招解决你的电脑卡顿问题!

热门文章

  1. edge浏览器受信任_微软Edge浏览器利用虚拟化技术做安全防护
  2. Aviutl 视频处理软件
  3. Android电池信息(Battery information)
  4. P背景软件测试,软件测试的背景和发展
  5. java mongodb gridfs_MongoDB-4 GridFS 文件存储
  6. 求取SHP文件的最小外接矩形并裁剪图像
  7. 两个cgi的莫名其妙的core dump问题的解决
  8. 2016年GitHub上史上最全的Android开源项目分类汇总
  9. 微软推出游戏服务器,成为云玩家 微软将推出“Project xCloud”云游戏服务
  10. 数据结构之树家族介绍