一天一点命令行之scp

相信连过远程服务器的小伙伴对 ssh 命令一定不陌生,经常会用ssh命令从一个服务器登录到另一个服务器( $ ssh username@xx.xx.xx.xx )。当我们需要两个服务器之间传输文件的时候,就需要用到scp命令了,当然你也可以选择借助xftp或者其它软件把文件下载到本地电脑,再从本地电脑上传到另一个服务器。

     scp全称为secure copy,它能够对文件加密后进行服务器之间,或者同一服务器不同用户之间的传输。scp默认使用和ssh一样的22端口来通信,有的服务器为了防止攻击会更改这个端口号。

命令格式

scp [参数] [原路径] [目标路径]

具体例子

1. 从本地服务器复制到远程服务器,下面的命令表示把t1.fasta从本地拷贝到202.202.202.202这个服务器的zbl用户的home主目录下。

$ scp t1.fasta zbl@202.202.202.202:~/  

2. 也可以复制整个文件夹到远程服务器,加入-r参数。下面的命令表示把t2_dir文件夹及里面的所有文件拷贝过去了

$ scp -r t2_dir zbl@202.202.202.202:~/  

3. 同样的,也可以从远程服务器负责到本地。只需要把顺序调换一下即可。下面的命令表示把远程服务器zbl主目录下的t2_dir文件夹复制到本地路径下(“.”表示本地当前路径)

$ scp -r zbl@202.202.202.202:~/t2_dir .

4. 本地服务器上从一个用户复制到另一个用户。下面的命令表示把文件从本地用户复制给使用同一个服务器的zbl,把ip改为localhost即可

$ scp t1.fasta zbl@localhost:~/  

注意如果服务器由于安全原因,scp需要走特殊端口,使用-P参数,后面跟上对应的端口就行。

命令参数

-1 强制scp命令使用协议ssh1

-2 强制scp命令使用协议ssh2

-4 强制scp命令只使用IPv4寻址

-6 强制scp命令只使用IPv6寻址

-B 使用批处理模式(传输过程中不询问传输口令或短语)

-C 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)

-p 留原文件的修改时间,访问时间和访问权限。

-q 不显示传输进度条。

-r 递归复制整个目录。

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

-c cipher 以cipher将数据传输进行加密,这个选项将直接传递给ssh。

-F ssh_config 指定一个替代的ssh配置文件,此参数直接传递给ssh。

-i identity_file 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。

-l limit 限定用户所能使用的带宽,以Kbit/s为单位。

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

-P port 注意是大写的P, port是指定数据传输用到的端口号

-S program 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 14,187评论 2 33
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,463评论 19 139
  • http://blog.csdn.net/pipisorry/article/details/52269785 什...
    950545c4cd64阅读 83,538评论 0 13
  • -----品味人生----- 徐 宏 人们常说 人的一生 一半是酸一半是甜 我们曾爱过 并且痛苦悲伤过 走过...
    sunxuhong阅读 1,033评论 0 1
  • 持续集成是敏捷开发中重要的一项,可以减少开发成员的工作量,通过自动化构建,即编译、发布、自动化测试。从而进行持续交...
    李美美欧巴阅读 4,400评论 0 1