Linux基础——自己的云计算, 把 Linux 当成你的云计算平台

Nafisa ·
更新时间:2024-05-15
· 911 次阅读

文章目录1.前言2.云端运行3.文件传输 1.前言

现在网上有很多云计算平台. 是不是也想着拥有一个自己的云计算平台? 其实只要你手中有两台电脑, 你就能自己给搭建出一个云计算平台. 其中的原理是什么呢? 无非就是自己在一台电脑上开发, 然后将开发好的代码放在云端运算. 其实也就是一种远程控制的原理.
比如我有一台 Mac, 但我不想让我的 Mac 进行大规模运算, 原因如下:

Mac 本来计算能力就弱
用 Mac 运算的时候肯定会卡, 但是我又想做其他东西, 太卡了不方便
手边若有一个计算能力强的 Linux, 大喜. 立马把它转成一个云计算平台~

接下来我们就来介绍具体的步骤应该是怎样.
手动搭建一个以 Linux 为中心的云计算系统可以选择以下几种方式.

底层 SSH 操控 (MacOS/Linux)
底层 SSH 操控 (Windows)
VNC / TeamViewer 远程桌面

对于接下来的内容, 我会基于 SSH 的方法进行讲解, 因为如果你有了 VNC 或者 Teamviewer, 你能看见发生了什么, 这会很好办. 不过用 SSH 的好处就是, 快! 运行快! 传文件快!

2.云端运行

接下来我们举例来讲解, 假如我在操控端 (如 Mac) 写代码. 在我的 Desktop 文件夹下写好了一个 Python 脚本 machine_learning.py. 但是我想拿 Mac 来做点其他事, 不想让这个脚本在我的 Mac 上”发光发热”, 那么我们就 ssh 远程推送到旁边空闲的 Linux 去运算吧.
比如这个 Python 脚本是这样的.

import platform a = 0 for i in range(9999): a += i print("Finish job, result=%i" % a) print("This is", platform.system())

然后这个教程一样, 在云端的 Linux 的 terminal 中输入 ifconfig, 找到我的 IP 是 192.168.0.114. 注意, 你的 IP 不一定和我的一样. 你需要自己确定. 然后确定你的云端 Linux 的用户名, 也就是你 Terminal 中 @ 字符前面的名字. 我的是 MrL. 这个文件在我 Mac 的 Desktop 上. 我要在 Linux 云端运行的话, 就是下面这个命令.

$ ssh MrL@192.168.0.114 python3 < ~/Desktop/machine_learning.py Finish job, result=49985001 This is Linux

注意这和我们之前用 SSH 类似, 不过这次我们加了一个 python 文件给服务器端. 这个文件的转换方式就用 < 来代替. 而且因为这是一个 Python3 文件, 所以我在 ip 后面写的是用 python3 在云端执行本地的这个文件.

3.文件传输

如果是有很多的 Python 文件怎么办呢? 有时候 Python 文件是一环扣一环, 这个文件里调用了那个文件的东西. 这时我们就能先全部复制所有必须文件去 Linux 的缓存区 或者 桌面, 然后再使用 ssh 在 Linux 云端运行传送过去的文件.
比如我现在需要两个 Python 文件才能运行, b.py 如下:

# This is b.py def inner_func(): print("This is a function in b")

还有一个 a.py 需要调用 b.py 才能运行.

# This is a.py from b import inner_func inner_func()

接着我们要做的就是将这两个文件先复制去 Linux 云端, 然后在云端运行 a.py. 下面所有的操作都是在本地执行的, 我们没有跑去云端打代码. 输入 scp (secure copy), 加密传输复制 ~/Desktop/{a,b}.py 在我桌面上的 a.py 和 b.py 两个文件到 云端MrL@192.168.0.114的桌面 ~/Desktop

$ scp ~/Desktop/{a,b}.py MrL@192.168.0.114:~/Desktop a.py 100% 37 6.3KB/s 00:00 b.py 100% 54 8.9KB/s 00:00

在这里插入图片描述
执行的话, 和上面的步骤有点不一样, 在本地用 ssh 去云端, 但是 ssh 的时候同时发送一条指令去执行 a.py. 这条指令我们用 “” 给框起来, 说明是要发送去云端再执行的指令.

$ ssh MrL@192.168.0.114 "python3 ~/Desktop/a.py" This is a function in b

同样, 如果你在云端的程序会产生一些结果文件, 我假设 b.py 是在云端运行完 a.py 而产生的新文件, 而我在本地电脑需要这个产生的文件. 我可以直接用 scp 的方式将这个 b.py 复制回来. 所以你会发现, scp 前一个参数是从哪开始复制, 后一个参数是复制去哪. 这样完了以后, 在我的 Mac 桌面上就产生了一个 result 文件.

$ scp MrL@192.168.0.114:~/Desktop/b.py ~/Desktop/result

这样一来一回, 我们总结一下走过的流程.

1.本地有要运行的文件
2.单个文件的话可以直接 ssh 去云端运行
3.多个文件可以先复制去云端, 然后在 ssh 运行
4.如果在云端有产生文件, 可以用 scp 复制回来


作者:Mr. Luoj



云计算 linux基础 Linux

需要 登录 后方可回复, 如果你还没有账号请 注册新账号