查看原文
其他

服务器之间如何传输数据:scp

王通 基因学苑 2023-08-18

有时候需要将一台服务器内的数据传输到另外一台设备,有很多种方法,如果两台物理机离得很近,可以通过移动硬盘传输。如果是跨地区的,有人首先通过filezilla将数据下载到windows电脑上,在通过filezilla上传到另外一台服务器,这样做都可以,不过这显然不符合我们一贯追求效率的原则,如果在是在服务器设备间传输数据,其实是可以直接传输的,比较好用的是scp与rsync命令。这次内容首先来介绍scp。

准备工作

在两台服务器设备间传输数据,首先保证两台设备都是联网的,至少有一台能连外网,得到两台设备的IP地址,这里注意,如果是192.168.1.XXX,这是内网IP,只能通过这台设备上传和下载。另外就是两台服务器的账号密码。这样就可以了。
假设一台设备IP为:123.tongyuangene.com
另一台设备IP为:1t.tongyuangene.com
要传输文件为/ifs1/Database/nt_makeblastdb/nt 这个文件。

scp命令

scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。scp可以通过ssh传输也可以通过ftp传输。上面的那个例子可以这样来操作:

#登录一台服务器,往另外一台设备传输数据,这个数据上载
 wangtong 18:02:55 ~
$ scp -r /ifs1/Database/nt_makeblastdb/nt wangtong@1t.tongyuangene.com:/home/wangtong/
The authenticity of host '1t.tongyuangene.com (42.202.146.188)' can't be established.
ECDSA key fingerprint is SHA256:jvCUCZAIToypcYAZfzL1M5IRxS48DfQ2sxA+ng5y8bo.
ECDSA key fingerprint is MD5:d6:13:cf:8f:51:89:31:20:3f:ed:c6:22:bf:67:29:c8.
Are you sure you want to continue connecting (yes/no)? 

scp的语法其实很简单,主要注意里面的“@”与“:”。

  • 第一部分:scp -r :如果传输是文件夹需要加-r,传输单个文件可以不加;

  • 第二部分:要上传的文件或者文件夹;

  • 第三部分:另一台设备的用户名和IP地址,用@符号连接;

  • 第四部分:冒号“:”,另一台设别上存储文件的路径。

等待验证,第一次会问是否继续连接,输入yes即可。然后输入密码即可开始上传数据。

数据下载也是同样的步骤,只需要将路径替换一下顺序即可。

#下载数据
scp -r  wangtong@1t.tongyuangene.com:/home/wangtong/nr.gz ./

注意最后面的传输到本地的路径,一个点,表示数据存储在当前目录下。

SCP的选项参数

scp的选项参数不多,主要使用的就是-r。
   -1:强制scp命令使用协议ssh1
   -2:强制scp命令使用协议ssh2
   -4:强制scp命令只使用IPv4寻址
   -6:强制scp命令只使用IPv6寻址
   -B:使用批处理模式(传输过程中不询问传输口令或短语)
   -C:允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
   -p:保留原文件的修改时间,访问时间和访问权限。
   -q:不显示传输进度条。
   -r:递归复制整个目录。
   -v:详细方式显示输出。
   -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:指定加密传输时所使用的程序。

---------- END ----------

(添加作者微信,请注明单位姓名)



您可能还会感兴趣的

生物信息暑期班(北京站)开始报名
基因学苑文章列表(201906)

上传数据,直接分析,1T内存服务器来了
手把手教你生信分析平台搭建专栏合集
生物信息重要资源站点合集
不会编程,如何进行批量操作
一个人全基因组完整数据分析脚本
一个细菌基因组完整分析脚本
如何在Linux下优雅的装X


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存