Linux-Day02

课程内容

  • 软件安装
  • 项目部署

    1. 防火墙配置【重点】

    目标

  1. 防火墙的管理命令
  2. 开放端口允许外部连接,移除端口不允许外部连接

    介绍

    linux默认防火墙是开启,而且所有的端口对外都是不可访问的。这么做的目的:安全。 问题:比如我等会在linux上安装tomcat的软件的。 tomcat软件需要使用8080端口。但是由于端口对外都是不可访问的,所以windows没法访问linux的tomcat。
    解决上述问题的方案有两种:

  3. 直接关闭防火墙,释放所有的端口,允许外界去访问全部的端口 , 方便省心,弊端不安全(开发阶段)

  4. 只开放8080端口。开放指定的端口 (生产阶段,项目上线)

防火墙类似于一个关卡检查人员,当你访问其他人的电脑,或者其他人访问你的电脑,都要进行拦截并进行处理,有的阻止,有的放行,有的转发。默认情况下防火墙在开机以后就自动启动了。

语法格式

防火墙服务

命令 作用
systemctl start firewalld 开启
systemctl stop firewalld 关闭
systemctl enable firewalld 开机自启动==(默认状态)==
systemctl disable firewalld 关闭开机自启
systemctl status firewalld 查看当前防火墙状态

操作演示

  1. 确认当前是管理员的账户,查看防火墙当前的状态
  2. 关闭防火墙,再查看防火墙的状态
  3. 再次开启防火墙,查看防火墙的状态

    执行结果

    Linux-Day02 - 图1

    firewall-cmd

    外网或内网需要连接到当前系统内的程序进行操作,需要linux系统开放程序端口,否则无法访问。
firewall-cmd 参数说明
—zone=public 开放哪个网络,默认是public
public: Linux-Day02 - 图2internal: Linux-Day02 - 图3
—add-port=端口/tcp 添加到防火墙中端口号,对外是打开的
—remove-port=端口/tcp 从防火墙的规则中删除端口号
—permanent 永久添加规则
—list-all 显示现有的规则,展示所有开放端口
—reload 重新加载规则,让新加的端口号起作用,重启防火墙的服务 systemctl restart firewalld

步骤

  1. 永久开放443端口,添加到公开区域,允许外部连接
  2. 重新加载防火墙的规则
  3. 显示所有打开的端口号
  4. 从公共区域中,永久移除443端口,不允许外部连接
  5. 重新加载防火墙规则
  6. 显示打开的端口号

    效果

    Linux-Day02 - 图4
    Linux-Day02 - 图5

    小结

    说说下面代码的作用

  7. 关闭、开启防火墙、设置自启、关闭自启服务命令?

    systemctl stop |start|enable |disable firewalld

  8. 开放(添加)指定端口命令

    firewall-cmd —add-port=xx/tcp —zone=public —permanent

  9. 删除开放端口命令:

    firewall-cmd —remove-port=xx/tcp —zone=public —permanent

  10. 重新加载,展示列表

    firewall-cmd —reload firewall-cmd —list-all

2. 软件安装

2.1 软件安装方式

在Linux系统中,安装软件的方式主要有四种,这四种安装方式的特点如下:

安装方式 特点
二进制发布包安装 软件已经针对具体平台编译打包发布,只要解压,修改配置即可 , tomcat\jdk
rpm安装( 软件管家) 软件已经按照redhat的包管理规范进行打包,使用rpm命令进行安装,不能自行解决库依赖问题
yum安装 一种在线软件安装方式,本质上还是rpm安装,自动下载安装包并安装,安装过程中自动解决库依赖问题(安装过程需要联网)
源码编译安装 软件以源码工程的形式发布,需要自己编译打包

2.2 安装JDK

上述我们介绍了Linux系统软件安装的四种形式,接下来我们就通过第一种(二进制发布包)形式来安装JDK。 JDK对应的二进制发布包,在课程资料中已经提供,如下:Linux-Day02 - 图6
JDK具体安装步骤如下:
1). 上传安装包

目标

在Linux下安装JDK

JDK安装步骤

  1. 在/下创建soft目录,将提供的”软件”复制到Linux的soft目录下

    1. mkdir /soft
    2. cd /soft
  2. 进入“/soft”目录,解压jdk到指定目录/usr/local下

    tar -xvf jdk-8u221-linux-x64.tar.gz -C /usr/local/
    
  3. 查看解压后的目录,目录中有jdk1.8.0_221为jdk解压的目录

Linux-Day02 - 图7

  1. 编辑/etc/profile文件

    vim /etc/profile
    
  2. 配置jdk环境变量,打开/etc/profile配置文件,将下面配置拷贝进去,注:放在文件的最后面。
    export命令用于将shell变量输出为环境变量

    #set java environment
    JAVA_HOME=/usr/local/jdk1.8.0_221
    PATH=$JAVA_HOME/bin:$PATH
    export JAVA_HOME PATH
    

    命令1:vim /etc/profile
    命令2:在文件末尾处,输入o(表示在光标下插入新行),复制上面的环境变量配置粘贴,并写入保存

  3. 重新加载/etc/profile配置文件

    source /etc/profile
    
  4. 判断JDK是否安装成功

Linux-Day02 - 图8

JDK安装小结

  1. 解压到压缩包到:/usr/local
  2. 配置环境变量: /etc/profile
    1. JAVA_HOME
    2. PATH
  3. 重新加载配置: source

    2.3 安装Tomcat

    2.3.1 Tomcat安装

    目标

    在Linux上安装Tomcat

    安装Tomcat的步骤

  4. 进入soft文件夹,解压Tomcat到/usr/local下

    tar -xvf apache-tomcat-8.5.51.tar.gz  -C /usr/local
    
  5. 开放Linux的对外访问的端口8080

    firewall-cmd --zone=public --add-port=8080/tcp --permanent
    
  6. 重启防火墙

    systemctl restart firewalld
    
  7. 进入/usr/local/apache-tomcat-8.5.51/bin目录,启动Tomcat

    ./startup.sh
    

    Linux-Day02 - 图9

  8. 在Windows下打开浏览器访问Linux的8080端口

Linux-Day02 - 图10

  1. 进入bin目录下,关闭服务器。关闭服务器以后,浏览器不能再访问。
    ./shutdown.sh
    
    Linux-Day02 - 图11

    2.3.4 停止Tomcat

    在Linux系统中,停止Tomcat服务的方式主要有两种:
    1). 运行Tomcat提供的脚本文件
    在Tomcat安装目录下有一个bin目录,这个目录中存放的是tomcat的运行脚本文件,其中有一个脚本就是用于停止tomcat服务的。
    Linux-Day02 - 图12
    我们可以切换到bin目录,并执行如下指令,来停止Tomcat服务:
    sh shutdown.sh
    ./shutdown.sh
    
    2). 结束Tomcat进程
    我们可以先通过 ps -ef|grep tomcat 指令查看tomcat进程的信息,从进程信息中获取tomcat服务的进程号。然后通过kill -9 的形式,来杀死系统进程。
    Linux-Day02 - 图13
    通过上述的指令,我们可以获取到tomcat的进程号为 79947。接下来,我们就可以通过指令 ,来杀死tomcat的进程 :
    kill -9 79947
    
    执行完上述指令之后,我们再访问Linux系统中的Tomcat,就访问不到了。

    注意:

    kill命令是Linux提供的用于结束进程的命令,-9表示强制结束
    

    注意 :

    虽然上述讲解的两种方式,都可以停止Tomcat服务,但是推荐使用第一种方式(./shutdown.sh)执行脚本来关闭tomcat服务,如果通过第一种方式停止不了tomcat了,这个时候,我们可以考虑使用第二种方式,强制杀死进程。
    

小结

**tomcat安装步骤:**
1. 解压
        2. 开放8080端口
        3. 启动tomcat

2.4 安装MySQL

2.4.1 MySQL安装

对于MySQL数据库的安装,我们将要使用前面讲解的第二种安装方式rpm进行安装。那么首先我们先了解一下什么rpm?

RPM:全称为 Red-Hat Package Manager,RPM软件包管理器(相当于windows的软件管家),是红帽Linux用于管理和安装软件的工具。

我们要通过rpm,进行MySQL数据库的安装,主要的步骤如下:
1). 检测当前系统是否安装过MySQL相关数据库
需要通过rpm相关指令,来查询当前系统中是否存在已安装的mysql软件包,执行指令如下:

rpm -qa                            查询当前系统中安装的所有软件
rpm -qa | grep mysql            查询当前系统中安装的名称带mysql的软件
rpm -qa | grep mariadb            查询当前系统中安装的名称带mariadb的软件

通过rpm -qa 查询到系统通过rpm安装的所有软件,太多了,不方便查看,所以我们可以通过管道符 | 配合着grep进行过滤查询。
Linux-Day02 - 图14
通过查询,我们发现在当前系统中存在mariadb数据库,是CentOS7中自带的,而这个数据库和MySQL数据库是冲突的,所以要想保证MySQL成功安装,需要卸载mariadb数据库。
2). 卸载现有的MySQL数据库
在rpm中,卸载软件的语法为:

rpm -e --nodeps  软件名称

那么,我们就可以通过指令,卸载 mariadb,具体指令为:

rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64

Linux-Day02 - 图15
我们看到执行完毕之后, 再次查询 mariadb,就查不到了,因为已经被成功卸载了。
3). 将资料中提供的MySQL安装包上传到Linux并解压
A. 上传MySQL安装包
在课程资料中,提供的有MySQL的安装包 ,我们需要将该安装包上传到Linux系统的根目录 / 下面。
Linux-Day02 - 图16
Linux-Day02 - 图17
B. 解压到/usr/local/mysql
执行如下指令:

cd /soft
mkdir mysql
tar -xvf mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar.gz  -C ./mysql

Linux-Day02 - 图18
4). 安装顺序安装rpm安装包

rpm -ivh mysql-community-common-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.25-1.el7.x86_64.rpm
yum install net-tools
rpm -ivh mysql-community-server-5.7.25-1.el7.x86_64.rpm

说明:

  • 因为rpm安装方式,是不会自动处理依赖关系的,需要我们自己处理,所以对于上面的rpm包的安装顺序不能随意修改。
  • 安装过程中提示缺少net-tools依赖,使用yum安装(yum是一种在线安装方式,需要保证联网)
  • 可以通过指令(yum update)升级现有软件及系统内核

Linux-Day02 - 图19

1.4.2 MySQL启动

MySQL安装完成之后,会自动注册为系统的服务,服务名为mysqld。那么,我们就可以通过systemctl指令来查看mysql的状态、启动mysql、停止mysql。

systemctl status mysqld        查看mysql服务状态
systemctl start mysqld        启动mysql服务
systemctl stop mysqld        停止mysql服务

Linux-Day02 - 图20

说明: 可以设置开机时启动mysql服务,避免每次开机启动mysql。执行如下指令: systemctl enable mysqld

我们可以通过如下方式,来判定mysql是否启动:

ps –ef | grep mysql                查看mysql进程
B. ps命令用于查看Linux中的进程数据。

1.4.3 MySQL登录

1.4.3.1 查阅临时密码

MySQL启动起来之后,我们就可以测试一下登录操作,但是我们要想登录MySQL,需要一个访问密码,而刚才在安装MySQL的过程中,并没有看到让我们设置访问密码,那这个访问密码是多少呢? 那实际上,对于rpm安装的mysql,在mysql第一次启动时,会自动帮我们生成root用户的访问密码,并且输出在mysql的日志文件 /var/log/mysqld.log中,我们可以查看这份日志文件,从而获取到访问密码。
可以执行如下指令:
1). cat /var/log/mysqld.log
Linux-Day02 - 图21
这种方式,可以看到所有的日志数据,文件比较大时,很不方便查看数据。我们可以通过管道符 | 配合grep来对数据进行过滤。
2). cat /var/log/mysqld.log | grep password
我们可以通过上述指令,查询日志文件内容中包含password的行信息。
Linux-Day02 - 图22

1.4.3.2 登录MySQL

获取到root用户的临时密码之后,我们就可以登录mysql数据库,修改root的密码,为root设置一个新的密码。并且我们还需要开启root用户远程访问该数据库的权限,这样的话,我们就可以在windows上来访问这台MySQL数据库。
执行如下指令:

①. 登录mysql(复制日志中的临时密码登录)
    mysql -uroot -p                                
②. 修改密码
    set global validate_password_length=4;            设置密码长度最低位数
    set global validate_password_policy=LOW;        设置密码安全等级低,便于密码可以修改成root
    set password = password('root');                设置密码为root

③. 开启访问权限
    grant all on *.* to 'root'@'%' identified by 'root';
    flush privileges;

操作完上述的指令之后,数据库root用户的密码以及远程访问我们就配置好了,接下来,可以执行exit退出mysql,再次通过新的密码进行登录。
Linux-Day02 - 图23
注意: 要想在windows上能够访问MySQL,还需要开放防火墙的3306端口,执行如下指令:

firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload

Linux-Day02 - 图24
最后我们可以在windows系统中的客户端来远程连接linux上的MySQL。
Linux-Day02 - 图25

小结

安装mysql的步骤小结:
1. 卸载原本的mysql
2. 解压
3. 安装
4. 开启mysqld的服务
5. 登录,查找你初始化密码/var/log/mysqld.log
6. 修改密码
7. 授权允许root用户在任意地址都可以登录
8. 开放3306端口
9. 使用windows的小海豚链接。

3. 项目部署

之前我们讲解Linux操作系统时,就提到,我们服务端开发工程师学习Linux系统的目的就是将来我们开发的项目绝大部分情况下都需要部署在Linux系统中。那么在本章节,我们将通过两种方式,来演示项目部署,分别是:手动部署项目 和 基于shell脚本自动部署。

3.1 手动部署项目

1). 在IDEA中开发SpringBoot项目并打成jar包
项目是一个很简单的springboot项目(可以自己开发一个,也可以直接导入资料中提供的),结构如下:
Linux-Day02 - 图26
可以在本地的idea中先启动当前的demo工程,然后访问一下,看看工程是否正常访问。
Linux-Day02 - 图27
执行package指令,进行打包操作,将当前的springboot项目,打成一个jar包。
操作步骤

  • 第一步: 引入Spring Boot打包插件

    <build>
          <!--指定jar的名字-->
          <finalName>helloworld</finalName>
          <plugins>
              <plugin>
                  <groupId>org.springframework.boot</groupId>
                  <artifactId>spring-boot-maven-plugin</artifactId>
              </plugin>
          </plugins>
      </build>
    
  • 第二步: 执行命令

    # 清理、打包 跳过测试
    mvn clean package -Dmaven.test.skip=true
    
  • 第三步: 运行

    java -jar xxx.jar
    
  • 第四步: 浏览器访问 http://localhost:8080/hello

2). 将jar包上传到Linux服务器
通过 rz 指令,将打好的jar包上传至Linux服务器的 /usr/local/app 目录下。 先执行指令创建app目录。

A. 在/usr/local下创建目录app
mkdir /usr/local/app
B. 切换到app目录下
cd /usr/local/app

Linux-Day02 - 图28
此时这个jar包就上传到 /usr/local/app 目录了。
Linux-Day02 - 图29
3). 启动SpringBoot程序
由于我们的项目已经打成jar包上传上来到Linux服务器,我们只需要运行这个jar包项目就启动起来了,所以只需要执行如下指令即可:

java -jar helloworld-1.0-SNAPSHOT.jar

Linux-Day02 - 图30
注意: 由于前面安装的Tomcat在启动时,会占用端口号8080,而当前springboot项目我们没有配置端口号,默认也是8080,所以我们要想启动springboot项目,需要把之前运行的Tomcat停止掉。
4). 检查防火墙,确保8080端口对外开放,访问SpringBoot项目

firewall-cmd --zone=public --list-ports

Linux-Day02 - 图31
如果防火墙没有放开8080端口,还需要放开对应的端口号,执行如下指令:

firewall-cmd --zone=public --add-port=8080/tcp --permanent

5). 访问测试
http://192.168.138.130:8080/hello
Linux-Day02 - 图32
6). 后台运行项目
当前这个demo工程我们已经部署成功了,并且我们也可以访问项目了。但是这个工程目前是存在问题的,就是当前我们项目启动的这个窗口被霸屏占用了,如果我们把这个窗口关闭掉(或ctrl+c),当前服务也就访问不到了,我们可以试一下。
Linux-Day02 - 图33
Linux-Day02 - 图34
目前程序运行的问题:
A. 线上程序不会采用控制台霸屏的形式运行程序,而是将程序在后台运行
B. 线上程序不会将日志输出到控制台,而是输出到日志文件,方便运维查阅信息
后台运行程序:
要想让我们部署的项目进行后台运行,这个时候我们需要使用到linux中的一个命令 nohup ,接下来,就来介绍一下nohup命令。

nohup命令:英文全称 no hang up(不挂断),用于不挂断地运行指定命令,退出终端不会影响程序的运行 语法格式: nohup Command [ Arg … ] [&] 参数说明: Command:要执行的命令 Arg:一些参数,可以指定输出文件 &:让命令在后台运行 举例: nohup java -jar boot工程.jar &> hello.log & 上述指令的含义为: 后台运行 java -jar 命令,并将日志输出到hello.log文件

那么经过上面的介绍,我们可以推测中,我们要想让当前部署的项目后台运行,就可以使用下面的指令:

nohup java -jar helloworld-1.0-SNAPSHOT.jar &> hello.log &

Linux-Day02 - 图35
这样的话,我们的项目就已经启动成功了,我们可以通过ps指令,查看到系统的进程。
Linux-Day02 - 图36
接下来,我们再次访问我们的项目,来看看服务是否可用。
Linux-Day02 - 图37
7). 停止SpringBoot项目
Linux-Day02 - 图38

小结

  • 手动部署需要经历那些步骤
    • 项目打jar
    • 在本地先测试jar是否可用
    • 上传到linux
    • 运行jar, 后台运行 nohup java -jar jar的名字 &>日志文件&

      3.2 基于Shell脚本自动部署

      3.2.1 介绍

      前面介绍的项目部署是手动部署,也就是部署过程中的每一步操作都需要我们手动操作。接下来,我们需要再讲解一下项目的自动部署,从而来简化项目部署的操作,那么我们先来整体上了解一下项目自动部署的流程及操作步骤。
      Linux-Day02 - 图39
      操作步骤如下:
      1). 在Gitee上创建远程仓库,并将本地的项目代码推送到远程仓库中
      2). 在Linux中安装Git,克隆代码
      3). 在Linux中安装maven
      4). 编写Shell脚本(拉取代码、编译、打包、启动)
      5). 为用户授予执行Shell脚本的权限
      6). 执行Shell脚本

      3.2.2 推送代码到远程

      这部分操作,大家只需要参考之前讲解的Git,来完成helloworld工程代码推送即可。
      A. 创建远程仓库
      Linux-Day02 - 图40
      B. 将idea中的代码提交并推送到远程仓库
      Linux-Day02 - 图41
      Linux-Day02 - 图42

      3.2.3 Git操作

      1). Git软件安装(可以省略)
      通过yum命令在线安装git,执行如下指令:
      yum list git            列出git安装包
      yum install git            在线安装git
      
      通过上述指令,安装好git之后,我们就可以通过 git —version去验证git的环境。
      Linux-Day02 - 图43
      2). Git克隆代码
      cd /usr/local/
      git clone https://gitee.com/ChuanZhiBoKe/helloworld.git
      
      Linux-Day02 - 图44

      3.2.4 Maven安装

      由于我们的工程是maven工程,我们要想进行项目的编译打包,需要用到maven的指令,所以需要安装maven。具体操作步骤如下:
      1). 上传资料中提供的maven的安装包
      上传课程资料中的maven安装包到soft目录
      2). 解压maven安装包到/usr/local目录
      tar -zxvf apache-maven-3.5.4-bin.tar.gz -C /usr/local
      
      Linux-Day02 - 图45
      3). 在/etc/profile配置文件中配置环境变量
      vim /etc/profile
      修改配置文件,进入到命令模式,按G切换到最后一行,按a/i/o进入插入模式,然后在最后加入如下内容 :
      MAVEN_HOME=/usr/local/apache-maven-3.5.4/
      PATH=$JAVA_HOME\bin:$PATH:$MAVEN_HOME\bin
      export JAVA_HOME PATH MAVEN_HOME
      然后按ESC进入到命令模式,输入 :wq 保存并退出
      
      Linux-Day02 - 图46
      要想让配置的环境变量生效,还需要执行如下指令:
      source /etc/profile
      
      Linux-Day02 - 图47
      4). 修改maven的settings.xml配置文件,配置本地仓库地址
      A. 切换目录
      cd /usr/local/apache-maven-3.5.4/conf
      
      B. 编辑settings.xml配置文件
      vim settings.xml
      
      在其中增加如下配置,配置本地仓库地址:
      <localRepository>/usr/local/repo</localRepository>
      
      Linux-Day02 - 图48
      并在settings.xml中的标签中,配置阿里云的私服
      <mirror> 
      <id>alimaven</id> 
      <mirrorOf>central</mirrorOf> 
      <name>aliyun maven</name> 
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      </mirror>
      
      Linux-Day02 - 图49

      3.2.5 Shell脚本准备

      Shell脚本(shell script),是一种Linux系统中的脚本程序。使用Shell脚本编程跟 JavaScript、Java编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。 对于Shell脚本编写不作为本课程重点内容,直接使用课程资料中提供的脚本文件bootStart.sh即可。

在/usr/local/目录下创建一个目录 sh(mkdir sh),并将shell脚本上传到该目录下。或者直接在sh目录下创建一个脚本bootStart.sh,然后将资料中的bootStart.sh文件打开,内容拷贝过来即可。
Linux-Day02 - 图50
脚本解读:
Linux-Day02 - 图51

2.2.6 Linux权限

前面我们已经把Shell脚本准备好了,但是Shell脚本要想正常的执行,还需要给Shell脚本分配执行权限。 由于linux系统是一个多用户的操作系统,并且针对每一个用户,Linux会严格的控制操作权限。接下来,我们就需要介绍一下Linux系统的权限控制。

1). chmod(英文全拼:change mode)命令是控制用户对文件的权限的命令 2). Linux中的权限分为三种 :读(r)、写(w)、执行(x) 3). Linux文件权限分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users) 4). 只有文件的所有者和超级用户可以修改文件或目录的权限 5). 要执行Shell脚本需要有对此脚本文件的执行权限(x),如果没有则不能执行

Linux系统中权限描述如下:
Linux-Day02 - 图52
解析当前脚本的权限情况:
Linux-Day02 - 图53
chmod命令可以使用八进制数来指定权限(0 - 代表无 , 1 - 执行x , 2 - 写w , 4 - 读r):

权限 rwx
7 读 + 写 + 执行 rwx
6 读 + 写 rw-
5 读 + 执行 r-x
4 只读 r—
3 写 + 执行 -wx
2 只写 -w-
1 只执行 —x
0 —-

举例:

chmod 777 bootStart.sh   为所有用户授予读、写、执行权限
chmod 755 bootStart.sh   为文件拥有者授予读、写、执行权限,同组用户和其他用户授予读、执行权限
chmod 210 bootStart.sh   为文件拥有者授予写权限,同组用户授予执行权限,其他用户没有任何权限

注意:
三个数字分别代表不同用户的权限

  • 第1位表示文件拥有者的权限
  • 第2位表示同组用户的权限
  • 第3位表示其他用户的权限

    2.2.7 授权并执行脚本

    在测试阶段,我们可以给所有的人都赋予执行该shell脚本的权限。所以可以执行如下指令:
    chmod 777 bootStart.sh
    
    Linux-Day02 - 图54
    权限解读:
    A. 第一个7,代表当前文件所有者root用户,对该文件具有读写执行权限;
    B. 第二个7,代表当前文件所有者所属组的用户,对该文件具有读写执行权限;
    B. 第三个7,代表其他用户,对该文件具有读写执行权限;
    执行该shell脚本:
    Linux-Day02 - 图55
    注意: 在执行maven指令进行打包时,第一次执行可能会耗时比较长,因为在进行maven工程的打包时,需要到中央仓库下载工程依赖的jar包和插件(可以在settings.xml中配置阿里云私服加速下载)。
    启动完成之后, 我们可以查看java进程:
    Linux-Day02 - 图56
    访问项目:
    Linux-Day02 - 图57

    4. 虚拟机克隆

    虚拟机克隆的作用

    以后我们需要玩集群,那么就需要有多台服务器,而且每台服务都需要安装相应的软件,这样子我们的工作就会重复了,解决方案:我们先在一台机器安装好所有的软件,然后克隆出来另外的机器。被克隆出来机器环境与供体是一模一样的。

    如何克隆

  1. 克隆
    Linux-Day02 - 图58

Linux-Day02 - 图59

  1. 修改ip地址,否则会互相ip冲突

Linux-Day02 - 图60
Linux-Day02 - 图61

  1. 重启网卡服务
    systemctl restart network
    

    5. 镜像还原

    镜像还原的应用场景

    ```
  2. 某些同学晚上关机的时候是强制关机的,导致文件出现损坏,机器没法启动。
  3. 后面我们的项目里面linux需要安装大量的软件的,这些软件目前都是在安装在老师的机器上,学生机器还没有,如果学生挨个安装耗时太久了,这时候老师可以把linux 的镜像拷贝给你们,然后还原出来与老师一模一样的机器。 ```

    如何实现镜像还原

  4. 先把镜像文件拷贝给目标群体

Linux-Day02 - 图62

  1. 还原镜像

Linux-Day02 - 图63
Linux-Day02 - 图64
Linux-Day02 - 图65

  1. 查看你本机的vm的网关

Linux-Day02 - 图66

  1. 修改ip(前三位)地址与网关一致

Linux-Day02 - 图67

  1. 重启网卡
    systemctl restart network