首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一天一点命令行之scp

一天一点命令行之scp

作者头像
阿凡亮
发布2020-04-14 14:36:43
4260
发布2020-04-14 14:36:43
举报
文章被收录于专栏:生物信息学生物信息学

相信连过远程服务器的小伙伴对 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)的选项。
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-07-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生物信息学 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档