【Linux虚拟机】VirtualBox搭建linux虚拟机

2023-10-26

Linux从虚拟机创建到程序运行(ubuntu版)

实际工作中,总是需要开发环境、测试环境和生产环境,但是很多小伙伴是没有这么多可供使用的服务器的,尤其是学习使用阶段,可能因为不熟悉服务器的配置,重复的重启、安装、卸载等。我们需要有自己可以随意操作的linux系统。


提示:以下内容为本篇章正文,共八部分内容。

一、构建ubuntu虚拟机

构建虚拟机的工具是VirtualBox,由德国sun公司开发,目前被Oracle收购,全名是 Oracle VM VirtualBox。我这里借鉴了其他博主的文章,文章详细说明了windows安装VBox的各个步骤。这里面有部分内容缺失,一台独立运行的电脑需要系统、网络、存储这些基本配置,网络的相关内容在下一步中进行了补充。

  1. 下载安装文件
  2. 安装VirtualBox
  3. 新建虚拟机
  4. 配置虚拟机
  5. 安装Ubuntu
  6. 改分辨率(方式一)
  7. 改分辨率(方式二)
  8. 共享文件夹
    参考链接:使用VirtualBox安装Ubuntu

二、管理虚拟机网络(网卡、端口、ip)

第一部分构建的过程中可以看到,VBox可以设置虚拟机的各项配置,因为不熟悉,很多也不是很明白,尤其是没有提供虚拟机和本地windows的网络和交互等,在这里我们有些知识是需要了解和掌握的。

VBox网络配置

这里我找到了一篇介绍虚拟机中网络配置的文章,可以进行参考,我是用的配置是网络1采用Host-Only模式,网络2使用NAT模式,满足了虚拟机上网和物理机通信。

桥接模式:实现虚拟机在真实的网络上;
NAT模式:实现虚拟机隐藏在物理机之后,能上网,但不能访问物理机;
Host-Only模式:实现虚拟机隐藏在物理机之后,不能上网,但可以访问物理机;
参考链接:搞懂虚拟机VirtualBox网络配置

虚拟机网络的应用

只掌握网络配置明显是不行的,网络配置实现了虚拟机上网和物理机通信,实际工作中有很多网络配置是需要改变系统的相关参数来满足我们的实际需要,比如下一步要实现的本地windows使用ssh链接ubuntu虚拟机需要开启系统的22端口,搭建web服务时需要开启80端口,开启域名https访问时开启443端口等,这样的场景还有很多。
虚拟机在使用时,跟我们在windows上一样,经常需要检查当前电脑网络中的ip,防火墙,端口等。在ubuntu虚拟机中,这些默认不是全部开放的,需要我们自己配置。
参考链接:Ubuntu系统中网络ip和端口管理

使用ssh链接ubuntu虚拟机

Ubuntu系统一般默认支持ssh,系统中默认安装了openssh-server和openssh-client。这里可以参考以下连接来熟悉ssh在系统中的一些常用linux命令。
参考链接:本地通过SSH连接Ubuntu虚拟机

修改Ubuntu的软件源

参考链接:Ubuntu安装和下载软件包
参考链接: sed -i命令详解及入门攻略


这两部完成后,我们已经可以在windows端通过ssh连接Ubuntu虚拟机,接下来我们看看Ubuntu系统的使用

三、ubuntu安装mysql数据库并用navicat连接

在使用mysql数据库的过程中,按照实际使用的版本安装是必须的,以下的参考链接可以实现这一需求。

  1. ubuntu安装mysql
  2. 启动和停止mysql
  3. 卸载mysql
  4. navicat远程连接mysql
  5. 删除账户

参考链接:Ubuntu虚拟机安装mysql并用Navicat连接
参考链接:MySQL 1130错误原因及解决方案


四、ubuntu安装postgresql数据库并用navicat链接

考虑到实际工作中可能用到地理信息的存储,虽然mysql也可以实现,但是postgresql能够更好的运用地理信息,postgresql的安装和链接参考如下;

  1. 安装
  2. 修改密码信息
  3. 远程访问设置
  4. 防火墙设置
  5. Navicat连接
  6. 一些常见操作postgresql的命令
    如果上述使用过程中存在问题,还可以参考如下链接和相关命令
新建postgreslq数据库,PostgreSQL(含 PostGIS)
sudo apt update && sudo apt upgrade -y 
sudo apt install postgresql postgresql-client postgis -y

sudo -u postgres psql
# 以下3条是数据库命令
CREATE DATABASE discern_db;
CREATE EXTENSION postgis;
SELECT PostGIS_version();
\q
# 重启数据库
sudo service postgresql restart

参考链接:Ubuntu安装与配置postgresql含远程连接教程


五、搭建web服务(nignx+uwsgi+django)

相关文章网络上很多,我这里找到一篇可以参考

参考链接:Nginx+uWSGI+Django部署web服务器
参考链接:Ubuntu环境下配置django+nginx+uwsgi


六、利用docker部署web服务

将4.5.6涉及内容打包完成,并实现一个可移植的镜像。
参考链接:Ubuntu的docker详细安装+使用


七、利用crontab设置定时任务并开机启动

Linux crontab是用来crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语 chronos(χρ?νο?),原意是时间。通常,crontab储存的指令被守护进程激活, crond常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为cron jobs。当安装完成操作系统之后,默认便会启动此任务调度命令。crond 命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。
注意:新创建的 cron 任务,不会马上执行,至少要过 2 分钟后才可以,当然你可以重启 cron 来马上执行。

crontab定时
启动cron服务:sudo service cron restart
查看cron服务状态:sudo service cron status
查看cron日志:less /var/log/cron.log
设置开机自启动:chkconfig cron on
查看定时任务:crontab -l
修改定时任务: crontab -e
查看python3程序的绝对路径:whereis python3
py程序的绝对路径:pwd
设置每月10号定时执行python程序:* * 10 * * /usr/bin/python3.8 /home/ubuntu/Mercury/scripts/crontab_pic2commodity/crontab_month.py
设置每5分钟定时执行python程序:*/5 * * * * /usr/bin/python3.8 /home/ubuntu/Mercury/scripts/crontab_pic2commodity/crontab_pic2commodity.py >> /home/ubuntu/Mercury/scripts/crontab_pic2commodity/logg.log
crontab排错
查看ubuntu的cpu占用:top
查看单个pid的cpu占用:top -H -p 2798132
查看ubuntu的内存占用:free -h -w
通过ps查看该应用:$ ps aux|grep 281020
将错误和正确的log写入到指定文件 >>/home/ubuntu/Mercury/scripts/crontab_pic2commodity/logg.log
删除日志:cat /dev/null > logg.log

参考链接:Ubuntu下crontab的安装和使用
参考链接:crontab的定时操作
参考链接:Linux Crontab定时运行python程序

总结

希望经过这一次学习,能够在工作中帮助到大家,进一步熟悉了linux系统和相关功能的使用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Linux虚拟机】VirtualBox搭建linux虚拟机 的相关文章

随机推荐

  • Java-单链表相关总结

    链表基类 author Q sir date 2021 06 08 desc 仅限本类操作 有些方法未加兼容及拓展 class Node Node next int data public Node int data this data d
  • 【满分】【华为OD机试真题2023 JAVA&JS】简单的自动曝光

    华为OD机试真题 2023年度机试题库全覆盖 刷题指南点这里 简单的自动曝光 时间限制 1s 空间限制 256MB 限定语言 不限 题目描述 一个图像有n个像素点 存储在一个长度为n的数组img里 每个像素点的取值范围 0 255 的正整数
  • Locust性能测试-分布式执行的方法(ok)

    来源 https www cnblogs com yoyoketang p 11681370 html https www cnblogs com kaibindirver p 11773334 html 前言 使用Locust进行性能测试
  • 腾讯云服务器被DDOS攻击解决办法

    腾讯云是国内仅此次阿里云的云服务商 很多站长朋友都使用他们家云服务器 自然被DDOS攻击的也不少 今天来介绍下使用腾讯云服务器被DDOS攻击的解决办法 一 购买腾讯高防IP 也称腾讯大禹BGP高防IP 是一个运行在腾讯云内网的高防IP服务
  • 第二章:简单古典密码(及其五元组)

    简单古典密码及其五元组 编制密码的基本原理和基本方法称为密码法 基本的密码法主要有移位 也称为置换 代替 和加减三种 在许多书上只是介绍置换和代替 在密码发展的初级阶段 他们都曾经独立地作为加密算法对明文信息进行加密 移位密码 移位密码是按
  • -bash: /big_date/jdk1.8.0_333/bin/java: /lib/ld-linux.so.2: bad ELF interpreter: 没有那个文件或目录

    自说 在CentOS7中搭建环境中 解压过java1 8版本时 配置好环境变量进行测试java版本时出现以下错误 出现这种情况的原因是因为当前环境缺少相关依赖包 glibc glibc 简单来说 glibc是gnu发布的libc库 即c运行
  • 毕业设计-基于SSM的网上商城系统

    项目编号 D09 项目名称 基于SSM的网上商城系统 项目类型 Java web项目 JavaEE 当前版本 V1 0 0版本 用户类型 有用户和管理员 双角色 项目架构 B S架构 设计思想 MVC 开发语言 Java语言 前端技术 La
  • js——网址动态拼接参数

    案例 你可以使用字符串拼接的方式来动态拼接参数到网址上 在这种情况下 你可以使用加号运算符来连接字符串 并使用变量来表示参数的值 下面是一个示例代码 let aaa http www baidu com let xxx 1 let yyy
  • 对于一个采用字符数组存放的字符串str,设计一个递归算法StrLength(char *str)求其字符个数(长度)。递归求字符串长度

    递归求字符串长度 需要的就是将数组看成指针 一步一步走下去 int StrLength char str char p str if p 0 return 0 else return StrLength p 1 努力加油a啊 o
  • 走出软件作坊

    这本书 对于小开发者真的是实用手册 关于如何与老板相处 如何做人 如何做技术 对于在小企业工作的人来说 真的不错 2014 7 11
  • c#自定义消息事件

    自定义消息 public class CustomEventArgs EventArgs public readonly string msg public CustomEventArgs string msg this msg msg 自
  • 设计模式之桥接模式(Bridge模式)

    一 模式动机 设想如果要绘制矩形 圆形 椭圆 正方形 我们至少需要4个形状类 但是如果绘制的图形需要具有不同的颜色 如红色 绿色 蓝色等 此时至少有如下两种设计方案 第一种设计方案是为每一种形状都提供一套各种颜色的版本 第二种设计方案是根据
  • 云服务器搭建神器JupyterLab(多图)

    云服务器搭建神器JupyterLab 多图 JupyterLab是一个交互式的开发环境 其用于应对包含着notebook 代码以及数据的工作场景 1 前言 如果说vim是编辑器之神 那么JupyterLab就是笔记本之神 从2017年开始我
  • 极端天气下的目标检测与测距算法

    更多视觉额自动驾驶项目请见 小白学视觉 自动驾驶项目 本文主要工作 科技的发展与进步促使自动驾驶车辆逐渐成为全球汽车产业发展的重要战略 方向 但自动驾驶车辆面对如 大雨 大雾 大雪等极端环境时 智能汽车图像 采集与处理系统将面临巨大挑战 并
  • 基于Python的socket库实现通信功能

    目录 1 前言 2 技术介绍 1 socket 2 Python的socket库 3 系统实现 1 服务端 server py 2 客户端1 client1 py 3 客户端2 client2 py 4 系统功能演示 1 启动服务端和客户端
  • idea配置maven教程

    1 下载maven 下载地址 官网地址点击进入 2 配置环境变量 解压到自己想要放置的路径后 配置系统用户的环境变量 新增系统变量 MAVEN HOME C Program Files JetBrains apache maven 3 8
  • 二维码 ThoughtWorks.QRCode 之 index was outside bounds of the array

    最近在使用ThoughtWorks QRCode过程中 单独生成一个二维码没有出现过问题 在重复利用QRCodeEncoder生成二维码的过程中 会出现index was outside bounds of the array错误 经过调试
  • JS 作用域

    var和let的比较 var是老版JavaScript中定义变量的标识符 let是新版JavaScript中定义变量的标识符 let的出现是为了解决var定义变量的一些遗留问题而推出的 在同一个作用域下 var允许重复声明 let不允许重复
  • SpringBoot整合Minio

    1 引入依赖 POM文件如下
  • 【Linux虚拟机】VirtualBox搭建linux虚拟机

    Linux从虚拟机创建到程序运行 ubuntu版 实际工作中 总是需要开发环境 测试环境和生产环境 但是很多小伙伴是没有这么多可供使用的服务器的 尤其是学习使用阶段 可能因为不熟悉服务器的配置 重复的重启 安装 卸载等 我们需要有自己可以随