文章目录

  • 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.pyFinish 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:~/Desktopa.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 复制回来

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

  1. 尚观linux视频配套教程,尚观最新嵌入式Linux基础视频教程 98集嵌入式Linux巨制视频教程 新手必备...

    尚观最新嵌入式Linux基础视频教程 98集嵌入式Linux巨制视频教程 新手必备 5.jpg (67.09 KB, 下载次数: 0) 2018-4-16 09:34 上传 1.jpg (44.17 ...

  2. linux基础知识ppt下载,《Linux基础知识》PPT课件.ppt

    <<Linux基础知识>PPT课件.ppt>由会员分享,可在线阅读,更多相关<<Linux基础知识>PPT课件.ppt(26页珍藏版)>请在装配图网上搜 ...

  3. 大数据学习笔记之Linux基础(一):Linux初窥

    文章目录 一.Linux入门概述 1.1 概述 1.2 下载地址 1.3 Linux特点 1.4 Linux和Windows区别 二.VM安装相关 2.1 安装VMWare虚拟机 2.2 安装Cent ...

  4. Linux基础——怎么样从 MacOS 或 Linux 通过 SSH 远程 Linux

    文章目录 1.前言 2.给 Linux 安装 OpenSSH 3.Mac 或 Linux SSH 去 Linux 1.前言 使用 ssh 远程操作 Linux 我觉得是我用得最多的一种形式了. 我有一 ...

  5. Linux基础--虚拟机的控制及linux系统的基本操作

    ##############虚拟机控制############### [kiosk@foundation98 Desktop]$ rht-vmctl start desktop          ## ...

  6. 实验楼Linux基础挑战2答案,实验楼-Linux基础-实验二 Linux的基本概念及操作

    一.实验介绍 1.1 实验内容 实验楼环境介绍 常用 Shell 命令及快捷键 Linux 使用小技巧 1.2 实验知识点 Linux 基本命令 通配符的使用 查看帮助文档 二.桌面环境 1.Linu ...

  7. Linux基础系列(六)Linux系统定时任务Crond

    Linux系统定时任务Crond Crond是什么 Crond是Linux系统中用来定期执行命令或指定程序任务的一种服务或软件. 特殊需求:(秒级别)crond服务就无法搞定,一般工作中邪脚本守护进程 ...

  8. linux基础知识和命令试题,Linux基础试题及答案

    1. 当登录Linux时,一个具有唯一进程ID号的shell将被调用,这个ID是什么*** B *** A. NID B. PID C. UID D. CID 2. 用vi打开一个文件,如何用字母&q ...

  9. Linux基础(3)--搭建最小的Linux系统

    搭建最小的Linux系统 1.平台 2.文件 3.步骤 4.实现简单的Hello World 1.平台 所需要的硬件平台为ARM-cortex A9内核的开发板,以iTOP-4412为例.软件需要以及 ...

  10. Linux 基础知识(2)---Linux内核空间内存申请函数kmalloc、kzalloc、vmalloc的区别

    Linux内核空间内存申请函数kmalloc.kzalloc.vmalloc的区别 kzalloc与kmalloc区别    这个函数就是原来的两个函数的整合 , 即原来我们每次申请内存的时候都会这么 ...

最新文章

  1. 神探Sherlock如何用AI破案?教你在Excel中搭建一个人脸识别CNN网络
  2. $#,$@,$0,$1,$2,$*,$$,$?,${}
  3. [css] 说说你对前端二倍图的理解?移动端使用二倍图比一倍图有什么好处?
  4. matlab热度图确定色标_C++实现类似Matlab的colormap Jet(灰度图生成彩色热度图)
  5. 色差仪软件的安装和电池充电
  6. react 全选反选_js中怎么将createElement出来的复选框实现全选,全不选,反选效果?...
  7. java.lang.IllegalArgumentException: Failed to decrypt问题解决
  8. 我的博客生涯开始……
  9. [常用办公软件] wps怎么自动生成目录?wps自动生成目录的设置教程
  10. 使用urllib发起请求- urlopen发起请求read/decode/getcode/info/geturl-post请求抽屉网
  11. 关于黑客,你了解多少?----黑客入门学习(常用术语+DOS操作)
  12. 【单片机毕业设计】【mcuclub-304】智能保温杯 | 语音智能水杯 | 恒温杯 | 多功能水杯
  13. ug创建html文件,UG8.0如何创建和打开中文名称的部件
  14. 适用于主流浏览器导出Excel表格的代码
  15. 模数转换器(ADC)的几种主要类型简介
  16. mysql数据库预处理_一种MySQL数据库中间件预处理方法与流程
  17. 使用 Plotly 和 ChartJS 图形库创建 Flask 仪表板
  18. 顶级IT企业 Sign-on Bonus 大比拼
  19. 微信小程序 Array对象操作
  20. 2021.1.11-1.18 人工智能行业每周技术动态

热门文章

  1. Python格式化字符串字面值 | 被官方文档称之为『漂亮』的输出格式
  2. php中的三元运算符
  3. 【操作系统/OS笔记14】经典同步问题:读者-写者问题、哲学家就餐问题
  4. lintcode :Count and Say 报数
  5. 编程语言的语法与语义
  6. css知多少(7)——盒子模型
  7. apache2.4 php5.5 配置,求助,apache2.4+php5.5,配置好不能运行,错误信息如下
  8. jsp连接mysql更新数据库代码_JSP连接MySQL数据库代码
  9. 如何高效学python编程_如何高效自学编程?天下没有难学的python
  10. Asp.net Web Api 路由 和 异常处理