专栏名称: 生信菜鸟团
生信菜鸟团荣誉归来,让所有想分析生物信息学数据的小伙伴找到归属,你值得拥有!
目录
相关文章推荐
BioArt  ·  ​Science | ... ·  昨天  
BioArt  ·  Science | ... ·  昨天  
BioArt  ·  专家点评Nat Chem Biol | ... ·  昨天  
生信菜鸟团  ·  精准医学 | Nat.Med | ... ·  2 天前  
生物学霸  ·  宇宙五大刊《Scientific ... ·  2 天前  
51好读  ›  专栏  ›  生信菜鸟团

玩转服务器4—服务器间数据传输

生信菜鸟团  · 公众号  · 生物  · 2024-11-12 20:00

主要观点总结

文章介绍了如何使用scp命令在共享服务器上进行数据快速传输,包括内网和外网传输方式。

关键观点总结

关键观点1: 共享服务器升级迭代

文章提到共享服务器进行了升级迭代,从早期的配置到现在的配置,同时提到了服务器的价格仍然是福利价800。

关键观点2: scp命令介绍

文章介绍了scp命令是Linux系统中的一个命令行工具,用于通过SSH协议在本地和远程主机之间安全传输文件。

关键观点3: scp命令基本语法和选项

文章详细说明了scp命令的基本语法和常用选项,如指定远程主机的SSH端口、递归复制整个目录、启用压缩等。

关键观点4: scp命令在共享服务器上的使用

文章具体演示了如何在共享服务器上使用scp命令进行内网和外网传输,包括文件、文件夹的传输,以及注意事项。

关键观点5: 福利抢购和推荐课程宣传

文章最后进行了福利抢购方式的宣传,并推荐了生信入门&数据挖掘线上直播课程和生信技能树VIP学徒招生信息。


正文

滴水穿石 非一日之功


随着单细胞的火热,我们的共享服务器也进行了对应的升级迭代,从早期的96线程512G内存到如今的256线程2T内存【 2024的共享服务器交个朋友福利价仍然是800 】,可以说是加量不加价。由于我们的共享服务器广受好评,其中有不少用户有多个账号,或者在早期账号到期后,选择新开账号。这时候常常面临的问题就是旧账号数据需要拷贝到新账号,或者多个账号之间互相传输数据。一些用户选择先下载数据到自己的硬盘,然后再上传到新账号,其实这是非常低效的一个方法。那么如何更快速方便的实现自己账号间数据的传输呢?这时候我们就需要用到 scp 命令了。

背景知识

scp

scp (Secure Copy Protocol)是Linux系统中的一个命令行工具,用于通过SSH协议在本地和远程主机之间安全传输文件。它的工作方式类似于 cp 命令,但具有加密功能,能够保证数据在传输过程中的安全性。

基本语法

scp [选项] source_file target_file
  • source_file :要传输的源文件路径,可以是本地文件,也可以是远程主机上的文件。
  • target_file :文件传输的目标路径,可以是本地路径,也可以是远程主机上的路径。

常用选项

  • -P :指定远程主机的SSH端口(默认是22)。
  • -r :递归复制整个目录,适合传输文件夹。
  • -C :在传输过程中启用压缩,有助于提高传输速度。
  • -i :指定身份验证的私钥文件,常用于基于密钥的认证方式。
  • -l :限制传输带宽,以防止占用过多的网络资源。

基本使用方式

  1. 从本地复制到远程 :
scp /path/to/local/file username@remotehost:/path/to/remote/directory

在这个例子中,命令会将本地的文件复制到远程主机的指定目录下。

  1. 从远程复制到本地 :
scp username@remotehost:/path/to/remote/file /path/to/local/directory

在这个例子中,命令会将远程主机的文件复制到本地的指定目录下。

  1. 复制目录 : 要复制整个目录,可以使用 -r 选项:
scp -r /path/to/local/directory username@remotehost:/path/to/remote/directory

在这个例子中,命令会将本地的目录及其所有内容复制到远程主机的指定目录下。

  1. 指定端口 : 如果远程主机的SSH服务不是运行在默认的22端口上,可以使用 -P 选项来指定端口:
scp -P port /path/to/local/file username@remotehost:/path/to/remote/directory

具体演示

了解了 scp 命令,那么具体到我们的服务器上,该如何操作。

我们的共享服务器一般都是通过域名登录的,这个时候你有两个选择,一是通过内网传输(建议)、二是通过外网传输(不建议)

scp 内网传输

从账号2(t020559)拷贝文件/文件夹到账号1(t160560)

首先查看账号1所在服务器的内网ip地址,可以使用 ifconfig 或者 ip 命令实现

ifconfig命令查看
ip命令查看

然后在账户2执行命令: scp -r 需要拷贝的文件 账号1@服务器ip地址:/home/data/usrename/目标目录

##传输文件
scp GRCh38.p14.genome.fa [email protected]:/home/data/t160560/ref
##传输整个文件夹
scp -r refdata-gex-GRCh38-2020-A [email protected]:/home/data/t160560/ref
t020559上传数据到t160560

如果文件非常大,建议放到后台传输,避免中断。比如使用 screen

##创建一个screen会话
screen -R share

#
#然后再执行传输命令
scp -r refdata-gex-GRCh38-2020-A [email protected]:/home/data/t160560/ref

#
# 退出会话
ctrl+a+d (快捷键)

#
# 重新进入(恢复)之前创建的会话窗口
screen -r share

同理,如果需要从账号1(t160560)拷贝数据到账号2(t020559),只需要调换一下主机前后位置即可 scp -r 账号1@服务器ip地址:/home/data/usrename/需要拷贝的文件 /账号2/目标目录

scp -r [email protected]:/home/data/t160560/updata   ~/tmp
从t160560下载数据到t020559

scp 外网传输

如果文件很小,其实也可以使用外网,进行服务器间传输(大文件不建议这么做,会占用整个服务器网速)

走外网传输首先就是要搞清楚两个账号的域名和端口。ssh默认是运行在22号端口,但是我们的共享服务器均是设定了固定的端口,所以需要使用 -P 参数来指定端口

从账号2(t020559)拷贝文件/文件夹到账号1(t160560)

在账号2执行命令: scp -r -P 账号1端口号 /账号2/需拷贝的文件 账号[email protected]:/home/data/username/目标目录







请到「今天看啥」查看全文