天天看點

Linux基礎——自己的雲計算, 把 Linux 當成你的雲計算平台1.前言2.雲端運作3.檔案傳輸

文章目錄

  • 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 [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
           
Linux基礎——自己的雲計算, 把 Linux 當成你的雲計算平台1.前言2.雲端運作3.檔案傳輸

執行的話, 和上面的步驟有點不一樣, 在本地用 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 複制回來

繼續閱讀