Linux基礎——自己的雲計算, 把 Linux 當成你的雲計算平臺

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 [email protected] 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 兩個文件到 雲端[email protected]的桌面 ~/Desktop

$ scp ~/Desktop/{a,b}.py [email protected]:~/Desktop

a.py                                          100%   37     6.3KB/s   00:00
b.py                                          100%   54     8.9KB/s   00:00

在這裏插入圖片描述
執行的話, 和上面的步驟有點不一樣, 在本地用 ssh 去雲端, 但是 ssh 的時候同時發送一條指令去執行 a.py. 這條指令我們用 “” 給框起來, 說明是要發送去雲端再執行的指令.

$ ssh [email protected] "python3 ~/Desktop/a.py"

This is a function in b

同樣, 如果你在雲端的程序會產生一些結果文件, 我假設 b.py 是在雲端運行完 a.py 而產生的新文件, 而我在本地電腦需要這個產生的文件. 我可以直接用 scp 的方式將這個 b.py 複製回來. 所以你會發現, scp 前一個參數是從哪開始複製, 後一個參數是複製去哪. 這樣完了以後, 在我的 Mac 桌面上就產生了一個 result 文件.

$ scp [email protected]:~/Desktop/b.py ~/Desktop/result

這樣一來一回, 我們總結一下走過的流程.

1.本地有要運行的文件
2.單個文件的話可以直接 ssh 去雲端運行
3.多個文件可以先複製去雲端, 然後在 ssh 運行
4.如果在雲端有產生文件, 可以用 scp 複製回來

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章