本文转自博客:
http://www.cnblogs.com/voidy/

SCP(Secure Copy)是一个在各个主机之间进行复制或者文件传输的一个命令行工具。

它使用一种同ssh一样的安全机制。事实上,它在后台使用ssh连接来进行文件的传输。

scp既指一种定义安全复制应该如何工作的协议,也指一种可以被安装的作为OpenSSH工具套的一部分的软件或是指令。

在这篇简单的教程中,我们可以看到一些scp指令的例子以及如何使用它进行安全的文件传输。

语法格式: scp source_file_path destination_file_path

根据不同的主机,文件路径应该包扩:完整的主机地址,端口号,用户名,密码以及文件路径。

所以如果你正在从你的本地计算机“发送”文件到远程计算机(上传)的语法是这样的:

scp ~/my_local_file.txt user@remote_host.com:/some/remote/directory

当从远程主机复制文件到本地主机(下载),他看起来正好相反:

scp user@remote_host.com:/some/remote/directory ~/my_local_file.txt

scp user@192.168.1.3:/some/path/file.txt .

这里很多是有关用scp来完成常规任务的。除了这些,scp也支持很多其他的选项和功能。让我们快速看一下他们的综述。

没错,默认情况下,scp总是覆盖目标地址的文件。如果你想避免它,那就使用功能更为强大的rsync工具吧。

一、详细输出

有了详细的输出,SCP的程序将输出大量关于它在后台做什么的信息。

当程序失败或无法完成请求时这是非常有用的。详细的输出将正确的指明该程序哪里出了问题。

输出的信息将会很多,而且包含有关连接如何建立,正在使用什么配置和认证文件等等的详细信息。

scp -v ~/test.txt root@192.168.1.3:/root/help2356.txt

二、多文件传输

多个文件可以像下面那样用空格分隔开

scp foo.txt bar.txt username@remotehost:/path/directory/

从远程主机复制多个文件到当前目录

scp username@remotehost:/path/directory/\{foo.txt,bar.txt\} .

scp root@192.168.1.3:~/\{abc.log,cde.txt\} .

三、复制整个文件夹(递归)

为了从一个主机往另一个主机复制整个文件夹,需要使用r switch并且指定目录

scp -v -r ~/Downloads root@192.168.1.3:/root/Downloads

四、在两个远程主机之间复制文件

scp也可以把文件从一个远程主机复制到另一个远程主机。

scp user1@remotehost1:/some/remote/dir/foobar.txt user2@remotehost2:/some/remote/dir/

五、用压缩来加快传输

一个用于加快传输,节省时间和带宽的超酷的选项!你所需要做的就是用C选项来启用压缩功能。

该文件在传输过程中被压缩,在目的主机上被解压缩。

scp -vrC ~/Downloads root@192.168.1.3:/root/Downloads

在上面的例子中我们开启压缩选项移动了整个文件夹。速度的增长取决于多少文件能被压缩。

六、限制带宽的使用

如果你不想scp占用所有的带宽,那么用选项“l”来限制最大传输速度,Kbit/s

scp -vrC -l 400 ~/Downloads root@192.168.1.3:/root/Downloads

七、在远程主机上连接一个不同的端口

如果远程服务器有ssh守护进程运行在不同的端口上(默认是22),那么你需要告诉scp使用“-P”选项(大写)来使用指定的端口。

scp -vC -P 2200 ~/test.txt root@192.168.1.3:/some/path/test.txt

八、保存文件属性

“-p”选项(小写),将会保存源文件的修改时间,访问时间以及方式。

scp -C -p ~/test.txt root@192.168.1.3:/some/path/test.txt

九、安静模式

在安静模式(“-q”选项),scp输出将会减少,并且不再显示进度表以及警告和诊断信息。

scp -vCq ~/test.txt root@192.168.1.3:/some/path/test.txt

十、特殊标识文件

当使用基于秘钥认证(无密码)。你将使用特殊的包含私有秘钥的标识文件。

这个选项直接传递到ssh命令并且以同样的方式工作。

scp -vCq -i private_key.pem ~/test.txt root@192.168.1.3:/some/path/test.txt

十一、使用不同的ssh_config文件

用”F”选项指定不同的ssh_config文件

scp -vC -F /home/user/my_ssh_config ~/test.txt root@192.168.1.3:/some/path/test.txt

十二、使用不同的加密

scp默认使用AES加密,有时候你可能想使用不同的加密。

用不同的加密可能会加快转移过程,举例来说,blowfish和arcfour被认为比AES更快的存在(但是安全上不如AES)。

scp -c blowfish -C ~/local_file.txt username@remotehost:/remote/path/file.txt

在上面的例子中我们用blowfish加密并同时压缩,这可以得到显著的速度上的提升,当然也取决于可用的带宽。

尽管SCP在安全地传输文件方面是非常有效的,它缺乏一个文件同步工具必要的功能。

它所能做的就是复制粘贴上述所有文件从一个位置到另一个位置。

一个更强大的工具的Rsync它不仅具有SCP的所有功能,而且增加了更多的功能用来在2个主机智能同步文件。

例如,它可以检查并上传只有修改过的文件,忽略现有的文件等等。

12个scp命令传输文件的例子相关推荐

  1. scp命令传输文件,显示的ETA符号是什么意思

    scp命令传输文件,显示的ETA符号是什么意思 问题描述: 在使用SCP命令,将本地文件上传至服务器时,在传输界面,出现了ETA符号,如下图所示: #### 问题解释: ETA(Estimated T ...

  2. 利用sshpass避免scp命令传输文件多次输入密码

    利用sshpass避免scp命令传输文件多次输入密码 1.scp基本用法: scp是基于ssh的 将本地文件上传或发送到服务器的命令. scp localpath username@ip:server ...

  3. linux下SCP命令 传输文件

    linux下SCP命令传输,我经常忘记了,虽然是很菜,但是还是要记录一下,免的又玩忘记,其实忘记的原因是我不是经常用,没有用心去记,汗. 设有两机,均为局域网,两机可相互通信无问题,中间无防火墙. 两 ...

  4. linux 下使用scp命令传输文件

    scp -P 1234 /home/wakasann/test.txt wakasann@192.168.1.30:/var/www/html/ 使用 1234端口,将 test.txt文件传输到服务 ...

  5. linux sftp拷贝文件夹,Linux下sftp命令传输文件的例子

    sftp命令我们看名字就是 sftp 是一个 1.常用登陆方式: 格式:sftp @ 通过sftp连接,端口为默认的22,指定用户. 2.查看sftp支持的命令 使用help命令,查看支持的命令,如: ...

  6. 使用scp命令传输文件

    1. 从远端复制文件到本地: sudo scp root@192.168.0.1:remote_path/remote_file . 2. 从本地复制文件到远端: sudo scp local_fil ...

  7. scp命令传输出现ssh: Could not resolve hostname错误

    ssh: Could not resolve hostname xxxxx: Temporary failure in name resolution 原因是docker导出的镜像需要离线导入,在命名 ...

  8. linux scp命令_太麻烦!使用 Linux scp 命令下载文件到 Windows 桌面

    使用 Windows 系统的小伙伴,在使用 xshell 或者 secureCRT 远程连接服务器,如需要下载或者上传文件,通常使用 rz.sz 命令.随着使用运维平台,在网页上操作,这种方式就不可取 ...

  9. scp命令传文件--远程ip加端口号的方式

    scp命令传文件远程ip加端口号 scp -P port filename username@ip port为远程ip对应的端口号. P大写

最新文章

  1. 编写运行tomcat后出现中文乱码的情况
  2. 服务器如何删除所有磁盘信息,关于怎样删除EFI分区,简单省事,很多换下来的硬盘都有这个分区...
  3. DS-5/RVDS4.0变量初始化错误
  4. C++ const修饰符和指针
  5. 月均数据_利用Python进行数据分析(附详细案例)
  6. Pytest Hooks方法之pytest_runtest_makereport获取测试用例结果
  7. poj 2229 Sumsets(类似于n的m划分)
  8. Wait-for-it之参考
  9. 美联社将在以太坊区块链记录NCAA锦标赛篮球比分和赛程表
  10. 2 分支语句——《Swift3.0 从入门到出家》
  11. 当前日期增加自然月(比如当前时间为3月31号,加上1个月,预期结果是4月30日,但是输出了5月1日)...
  12. CentOS7和CentOS8 Asterisk 20.0.0 简单图形化界面5--libss7驱动7号信令
  13. linux系统下在ubuntu20.04安装matlab2017总结
  14. kali-Linux局域网渗透之Win2008
  15. 视频渲染靠cpu还是显卡 视频渲染的作用是什么
  16. java 视频边下边播,android 边下边播放mp3完美实现(有缓冲和播放进度效果)
  17. python实践输出星星_打印星星 - Python
  18. 动手深度学习v2 汇聚层pooling 课后习题
  19. 你踩过几个?盘点微信H5小游戏开发中的那些坑
  20. leetcode每日一题第三十二天-剑指 Offer 65. 不用加减乘除做加法(easy??middle了吧)

热门文章

  1. 关于一道你们眼中的水题 Windy数 的乱写(数位dp)
  2. RHadoop实验 – 统计邮箱出现次数
  3. 重要的表格数据误删了,用EasyRecovery快速恢复!
  4. AutoCAD快速入门(十三):倒角和圆角
  5. java 正序排序_Java8对list排序(正序倒序)
  6. 小技巧-如何在任何一个文件夹中打开cmd
  7. PDF格式的“在线阅读”和“下载”
  8. scp是什么,有什么用
  9. 留学生最常用最全的五个英文文献检索网站
  10. js动态修改表格数据