华为云云耀云服务器 L 实例评测|配置教程 + 用 Python 简单绘图

2023-09-16 11:15:48

Part.I Introduction

本篇博文是为了参与华为“【有奖征文】华为云云服务器焕新上线,快来亲身感受评测吧!”活动 1,顺便免费体验一下华为云平台。

在这里插入图片描述

Chap.I 云耀云服务器 L 实例简介

云耀云服务器 L 实例是新一代开箱即用、面向中小企业和开发者打造的全新轻量应用云服务器。云耀云服务器 L 实例提供丰富严选的应用镜像,实现应用一键部署,助力客户便捷高效的在云端构建电商网站、Web应用、小程序、学习环境、各类开发测试等 2

云耀云服务器 L 实例主要有如下功能:
在这里插入图片描述
更多信息参见 2

Chap.II 参与活动步骤

步骤如下:

  • 首先在『华为云平台』注册账号
  • 填写问卷,填问卷需要华为云 ID,就是你的账号名(如果有租户就是租户名)
  • 等待几天会收到满 ¥55 减 ¥54.99 的优惠券
  • 网址 用优惠券花 3 分钱买一个月的『Linux 可视化宝塔面板』
    在这里插入图片描述
  • 购买完成之后依次点击『顶部菜单』→『资源』→『我的资源』→『侧边菜单』→『弹性云服务器』就可以看到自己购买的服务了
    在这里插入图片描述

注:宝塔 Linux 面板 8.0.0.1:2核2G|系统盘 40GiB|流量包 400GB|峰值带宽 3Mbit/s

Part.II 配置

Chap.I 初步配置

  • 首先需要设置密码:点击上面的『重置密码』(因为是第一次使用,所以要设置密码),设置好之后就可以使用啦~
  • 在终端中输入ssh root@120.46.134.155(后面的 IP 是公网 IP,就是上面图片中第一行的 IP)
  • 然后输入密码就可以登进去了
    在这里插入图片描述

免密登录:因为每次登录都需要输入密码,这样不免很烦,可以参考 3 实现免密登录。下面简单介绍一下步骤:

1、cd ~/.ssh/进入ssh所在目录
2、ssh-keygen -t rsa 生成公私钥,一路回车
3、将公钥拷贝到服务器上,并将其追加到服务器上./.ssh/authorized_keys
4、更改服务器上的.ssh权限

chmod 700 ~/.ssh/
chmod 600 ~/.ssh/authorized_keys

5、在本地.ssh/config文件中加入 a1 (这步好像没必要?这是用 VScode 才需要的步骤)

Host haoJiDeMingZi 								# sui bian qu
    HostName 111.111.1.1 		 				#(IP)
    User usrname                	  			# username
    IdentityFile /Users/xxx/.ssh/id_rsa			# si yao di zhi

6、在终端输入

ssh somebody@ip
# eg:
ssh usrname@111.111.1.1

即可免密连接!

Chap.II 配置安全组

说实话,笔者之前没有做过这种操作,是看了一个大佬的文章 4 才意识到要这么做。

进行安全组规则设置是为了保证来自外部操作来链接服务器的安全性,使用服务器时,服务器会提供(一般一个服务器上最多能监听65535个端口)端口,让外部接入服务器进行操作,对进行安全组配置就是对每一个端口设置开放与否


进入安全组配置的方法:依次点击『顶部菜单』→『资源』→『我的资源』→『侧边菜单』→『弹性云服务器』→最右边『更多』→最下面『网络设置』→『安全组规则配置』→『配置』规则→可以进行修改、复制等操作。可以看到华为云的安全配置里面已经有默认的几个安全组规则,可以查看后自行选用,当然不满意的话也可以自己新建。

在这里插入图片描述
详细的安全组配置实例参考官方文档 5

Part.III 简单使用

就把这个云服务器当作一个 Linux 系统的电脑使用就行了(虽然利用它还可以搭建网站等等,具体笔者也没有尝试过)。里面已经安装了 Python

root@hcss-ecs-903f:~# python3 -V
Python 3.10.6

Chap.I VScode 远程连接华为云

虽然使用 powershell 已经可以很方便地和华为云建立远程连接,但是在编程的过程中,使用 Linux 终端不免有些麻烦。因为笔者习惯用 VScode,它既可以配置语言解释器(在编程的过程中会提示错误信息),也可以像 Windows 那样很方便地浏览文件。下面就简单演示一下如何用 VScode 远程连接服务器 6

步骤如下:

  1. 从官网下载 VScode
  2. 安装 Remote-SSH 插件
  3. ~\.ssh文件中添加服务器连接配置(其实上面免密登录第五步已经做了此操作)
  4. 连接服务器(第一次连接需要进行一些配置,比如选择服务器是什么操作系统之类的)

连接好之后像笔者一样就可以尽情地玩耍了。

在这里插入图片描述
值得注意的是,当有多个 Python 时,可以Ctrl+Shift+P,输入python 选择你想要的解释器,当然第一次使用华为云就不需要考虑这点了

在这里插入图片描述

Chap.II 简单绘图

下面就用 Python 来画个图吧,首先需要安装matplotlib

pip install matplotlib

然后找一个合适的地方进行简单的测试,笔者新建了文件夹

mkdir project/20230915_test

然后新建一个文件

touch plot.py

将脚本贴进去

import numpy as np

def draw_cum_prob_curve(data,bins=20,title='Distribution Of Errors',xlabel='The Error(mm)',pic_path=''):
    """
    plot Probability distribution histogram and Cumulative probability curve.
    
    > @param[in] data:          The error data
    > @param[in] bins:          The number of hist
    > @param[in] title:         The titile of the figure
    > @param[in] xlabel:        The xlable name
    > @param[in] pic_path:      The path where you want to save the figure
    return:     void
    """
    import matplotlib.pyplot as plt
    import matplotlib as mpl
    from matplotlib.ticker import FuncFormatter
    from matplotlib.pyplot import MultipleLocator
    def to_percent(temp,position=0):          # convert float number to percent
        return '%1.0f'%(100*temp) + '%'
    fig, ax1 = plt.subplots(1, 1, figsize=(12, 6), dpi=100, facecolor='w')
    font1 = {'weight': 600, 'size': 15}
    
    n, bins, patches=ax1.hist(data,bins =bins, alpha = 0.65,edgecolor='k') # Probability distribution histogram
    yt=plt.yticks()
    yt1=yt[0].tolist()
    yt2=[i/sum(n) for i in yt1]
    ytk1=[to_percent(i) for i in yt2 ]
    plt.yticks(yt1,ytk1)
    X=bins[0:-1]+(bins[1]-bins[0])/2.0 
    bins=bins.tolist()
    freq=[f/sum(n) for f in n]
    acc_freq=[]
    for i in range(0,len(freq)):
        if i==0:
            temp=freq[0]
        else:
            temp=sum(freq[:i+1])
        acc_freq.append(temp)
    ax2=ax1.twinx()                         # double ylable
    ax2.plot(X,acc_freq)                    # Cumulative probability curve
    ax2.yaxis.set_major_formatter(FuncFormatter(to_percent))
    ax1.set_xlabel(xlabel,font1)
    ax1.set_title(title,font1)
    ax1.set_ylabel('Frequency',font1)
    ax2.set_ylabel("Cumulative Frequency",font1)
    plt.savefig(pic_path,format='png', dpi=300)


example_list=[]
n=10000
for i in range(n):
    tmp=[np.random.normal()]
    example_list.extend(tmp)
tit='TEST'
xla='DATA'
pic_path='/root/project/20230915_test/test.png'		# file_save_path
draw_cum_prob_curve(example_list,50,tit,xla,pic_path)

F5运行,就得到了绘图结果,如果想将绘图结果保存在本地,可以

scp root@120.46.134.155:/root/project/20230915_test/test.png ./

绘图结果如下所示:
在这里插入图片描述

Reference


  1. 【有奖征文】华为云云服务器焕新上线,快来亲身感受评测吧! ↩︎

  2. 华为云云耀云服务器 L 实例 ↩︎ ↩︎

  3. 免密连接服务器 ↩︎

  4. 配置安全组 ↩︎

  5. 安全组配置示例 ↩︎

  6. VScode 远程连接服务器 ↩︎

更多推荐

ELK 企业级日志分析系统

----------------------ELK概述----------------------------------------1、ELK简介ELK平台是一套完整的日志集中处理解决方案,将ElasticSearch、Logstash和Kiabana三个开源工具配合使用,完成更强大的用户对日志的查询、排序、统计需求

[刷题记录]牛客面试笔刷TOP101(二)

(一)传送门:[刷题记录]牛客面试笔刷TOP101(一)_HY_PIGIE的博客-CSDN博客目录1.合并二叉树2.二叉树的镜像3.判断是否为二叉搜索树4.判断是不是完全二叉树1.合并二叉树合并二叉树_牛客题霸_牛客网(nowcoder.com)思路:在后序遍历的基础上进行,两颗二叉树可能会有位置有空缺的情况.在一个子

Python基础学习笔记1(AI Studio)

地址:飞桨AIStudio星河社区-人工智能学习与实训社区课程地址:飞桨AIStudio星河社区-人工智能学习与实训社区课程地址:飞桨AIStudio星河社区-人工智能学习与实训社区课程地址:飞桨AIStudio星河社区-人工智能学习与实训社区AIStudio的Notebook项目的基本操作项目启停执行和调试多文件代码

JavaScript面试题整理(一)

数据类型篇1、JavaScript有哪些数据类型,它们的区别是什么?基本数据类型:number、string、boolean、undefined、NaN、BigInt、Symbol引入数据类型:ObjectNaN是JS中的特殊值,表示非数字,NaN不是数字,但是它的数据类型是数字,它不等于任何值,包括自身,在布尔运算时

ELK企业级日志分析系统

ELK概述为什么要使用ELK日志主要包括系统日志、应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误。往往单台机器的日志我们使用grep、awk等工具就能基本实现简单分析,但是当日志被分

如何进行网络编程?

网络编程是计算机科学领域中的一个重要主题,允许计算机之间通过网络进行通信和数据交换。在C语言中,网络编程通常涉及使用套接字(socket)API来创建、连接、发送和接收网络数据。本文将介绍如何进行基本的网络编程,包括创建套接字、建立连接、发送和接收数据,以帮助C语言初学者入门这一领域。1.套接字(Socket)简介套接

排序算法:计数排序

前文说到,19591959年77月,希尔排序通过交换非相邻元素,打破了O(n^2)的魔咒,使得排序算法的时间复杂度降到了O(nlogn)级,此后的快速排序、堆排序都是基于这样的思想,所以他们的时间复杂度都是O(nlogn)。那么,排序算法最好的时间复杂度就是O(nlogn)吗?是否有比O(nlogn)级还要快的排序算法

Netty面试题(二)

文章目录前言一、Netty的线程模型?二、TCP粘包/拆包的原因及解决方法?三、了解哪几种序列化协议?总结前言Netty的线程模型?TCP粘包/拆包的原因及解决方法?了解哪几种序列化协议?一、Netty的线程模型?Netty通过Reactor模型基于多路复用器接收并处理用户请求,内部实现了两个线程池,boss线程池和w

合肥先进光源国家重大科技基础设施项目及配套工程启动会纪念

合肥先进光源国家重大科技基础设施项目及配套工程启动会纪念卡西莫多合肥长丰岗集里肥鸭从此别泥塘先平场地设围栏进而工地筑基忙光阴似箭指日争源流汇智山水长国器西北扩新地家校又添新区园重器托举有群力大步穿梭两地间科教兴邦大国策技术盈身坦荡行基坑从今开挖砌础柱继而深潜立设计蓝图逐展开施工巧匠刻惊奇项颈昂起躲绞索目光如炬细察析及时

数据库小记-mysql-DDL、DML、DQL

MySQL是一个流行的关系型数据库管理系统,支持各种数据库操作语言(DataManipulationLanguage,DML)、数据库定义语言(DataDefinitionLanguage,DDL)和数据查询语言(DataQueryLanguage,DQL)。以下是它们的主要区别和示例:DDL(数据定义语言):DDL用

【youcans动手学模型】目标检测之 SPPNet 模型

欢迎关注『youcans动手学模型』系列本专栏内容和资源同步到GitHub/youcans【youcans动手学模型】目标检测之SPPNet模型1.SPPNet卷积神经网络模型1.1论文摘要1.2技术背景1.3空间金字塔池化1.4目标检测1.5总结2.在PyTorch中定义SPP模型类2.1SPP层的参数计算2.2定义

热文推荐