scp

ssh 可以让你足不出户操控远程终端,而远程终端或服务器一般都比本机强,这里的指各个不同的方面,下面我就来举几个栗子🌰:

  • 机器学习或深度学习需要强大的 GPU 支持以加速训练过程
  • Web 服务器需要固定的 ip 地址,稳定的网络线路接入,以及(如电源,存储等)冗余保障
  • 长视频,多特效渲染则需要高性能多核心 CPU,以及强大煤气灶显卡加持
  • 云端储存则需要高带宽,以及高 I/O 并发性能

Problem

那么问题来了,怎么把在本机写的代码或其他文件安全地发送过去,从而在远端运行?

Solution

解决方式有很多,你可以先上传到第三方平台,比如 GitHub, GitLab 之类的版本控制工具,然后在远端拉取下来即可。或者你也可以通过 ftp 协议点对点地传输文件等等。scp 也是一种解决方式,它是基于 ssh 隧道的传输工具。我个人认为应该依据你传输的文件类型来选择解决方式,scp 适合传输零碎的,数量不多的文件;ftp 更适合传输单一较大的文件;编写和传输代码的话使用 Git 就再好不过了。(小技巧:怎么把很多零碎的小文件变成一个大文件?用 tar 命令!我会在下一条目中讲到。)

scp 用法(适合 macOS, Unix 用户)

看名字就能猜到其用法与 cp 相似,传输文件夹需要加上 -r flag. 在尝试以下代码之前,请确保你已经完成了 ssh 条目中的进阶技能二。注:冒号后面跟的是远程服务器下的路径

$ ls -lF
total 8
drwxr-xr-x  2 utorid  staff  64  9 Jan 17:24 dir/
-rw-r--r--  1 utorid  staff   4  9 Jan 17:24 file

# 传输 文件 到远端 HOME 文件夹内
$ scp file cdf:~

# 传输 文件夹 到远端 HOME 文件夹内
$ scp -r dir/ cdf:~

scp 用法(Windows)

Windows 用户稍安勿躁,谁说我们大微软家族就不能用 scp?只需要下载一个名叫 WinSCP 的软件即可,服务器信息可以从 PuTTY 中导入,傻瓜式操作。

results matching ""

    No results matching ""