服务器之间如何传输数据:scp
有时候需要将一台服务器内的数据传输到另外一台设备,有很多种方法,如果两台物理机离得很近,可以通过移动硬盘传输。如果是跨地区的,有人首先通过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