使用scp在两个linux系统之间传输文件

问题背景

使用矩池云跑深度学习代码,租了个矩池云的第三方服务器,如下图所示。矩池云自己的服务器可以直接用矩池云网盘上传文件跑,但是矩池云的第三方服务器无法用网盘上传文件,需要使用scp进行文件拷贝。

在这里插入图片描述

拷贝文件

我将我的代码和数据集上传到了矩池云网盘上,然后租一个CPU服务器(租GPU服务器也可以,反正就是组一个矩池云自己的机器就行),在这个cpu服务器的jupyterlab里面打开终端,输入相关命令拷贝文件。拷贝文件有两个方向,一是从源设备(CPU服务器)传输文件至目标设备(A100 设备),二是从目标设备下载文件至源设备。

首先打开cpu服务器的jupyterlab

在这里插入图片描述

打开终端

在这里插入图片描述

首先我们要从源设备(本文中是矩池云自己的服务器)传输文件至目标设备(本文中是A100设备)

传输一个文件

在终端中输入以下代码,注意代码需要根据主机端口号不同和要传输的文件不同进行修改

在这里插入图片描述

scp -P 35287 /mnt/bcg2ecg/requirements.txt root@58.57.119.80:/mnt/bcg2ecg/

下面解释下代码意思:

代码解释
scp使用scp命令
-P-P表示指定SHH端口号(Port)
35287目标设备的SSH端口号
/mnt/bcg2ecg/requirements.txt需要传输的文件在源设备中的路径
rootusername,大多数情况username应该都是root
58.57.119.80目标设备的SHH主机(Host)
/mnt/bcg2ecg/拷贝至目标设备的路径
备注注意主机和目标设备路径间有一个冒号

这一行代码就是把requirements.txt这个文件拷贝到目标设备的目标文件夹中。其中目标设备的相关信息在矩池云的租用界面中可以看到:

在这里插入图片描述

在第一次运行scp程序的时候他会问你是否建立连接,这里输入yes就行

在这里插入图片描述

然后输入密码,把密码复制粘贴过去即可,注意这里粘贴密码后也不会显示,粘贴后直接回车即可。

然后就能看到传输成功

在这里插入图片描述

传输一个文件夹

如果需要传输一个文件夹,包括文件夹内的文件和所有子文件夹,在上面的代码进行小修改即可

scp -P 35287 -r /mnt/bcg2ecg/data root@58.57.119.80:/mnt/bcg2ecg/

在传输的文件夹路径前面加一个-r,就可以传输一整个文件夹过去

从目标设备(本文中是A100设备)下载文件到源设备(本文中是矩池云自己的服务器)

当我们在目标设备完成训练之后,需要把训练结果的一些文件下载到源设备中,此时的操作方式如下:
为了举例,我在目标设备中创建了一个results的文件夹,并且在这个文件夹下新建了1.txt和2.txt两个文件

在这里插入图片描述
在这里插入图片描述
输入以下代码,其实也就是把前面代码的源设备地址和目标设备地址调换一下

scp -P 35287 -r root@58.57.119.80:/mnt/bcg2ecg/results /mnt/bcg2ecg

然后可以看到传输成功
在这里插入图片描述
源设备出现了results文件夹及文件夹下的两个文件

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值