Linux—day4
- 项目部署
1. 手工部署项目
-
在IDEA中开发SpringBoot项目并打成jar包
-
将jar包上传到Linux服务器
# 创建目录,将项目jar包放到此目录 mkdir /usr/local/app
-
启动SpringBoot程序
java -jar jar包名
-
检查防火墙,确保端口对外开放,访问SpringBoot项目
-
未开放使用下面命令:
开放指定端口(
firewall-cmd --zone=public --add-port=8080/tcp --permanent
)
-
-
改为后台运行SpringBoot程序,并将日志输出到日志文件
-
目前程序运行的问题
- 线上程序不会采用控制台霸屏的形式运行程序,而是将程序在后台运行
- 线上程序不会将日志输出到控制台,而是输出到日志文件,方便运维查阅信息
-
nohup
命令:英文全称no hangup (不挂起),用于不挂断地运行指定命令,退出终端不会影响程序的运行语法格式: nohup Command [Arg …][&]
参数说明:
Command:要执行的命令 Arg:一些参数, 可以指定输出文件 &:让命令在后台运行
举例:
#后台运行java -jar命令,并将日志输出到hello.log文件
nohup java -jar boot工程.jar &> hello.log &
-
-
停止SpringBoot程序
采用杀进程的方式
ps -ef | grep 'java -jar'
查找进程号kill -9 查找到的进程号
2. 通过Shell脚本自动部署项目
2.1 操作步骤
-
在Linux中安装Git
yum list git
列出git安装包
yum install git
在线安装git-
使用Git克隆代码
cd /usr/local/ git clone https://gitee.com/echo-hky/helloworld.git
-
-
在Linux中安装maven
-
将maven安装包上传到Linux,在Linux中安装maven
-
解压安装包
tar -zxvf apache- maven-3.5.4-bin.tar.gz -C /usr/local
-
修改配置文件:
vim /etc/profile
加入如下内容:
export MAVEN_HOME=/usr/local/apache-maven-3.5.4 export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
source /etc/profile
重新加载文件,使其生效mvn -version
查看maven是否安装成功 -
修改配置文件:
vim /usr/local/apache-maven-3.5.4/conf/settings.xml
修改内容如下:
#指定maven本地仓库 <localRepository>/usr/local/repo</localRepository>
-
-
编写Shell脚本(拉取代码、编译、打包、启动)
-
在Linux中编写Shell脚本:bootStart.sh
-
Shell脚本(shellscript) :是一种Linux系统中的脚本程序。
使用Shell脚本编程跟JavaScript、Java编程一样, 只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。
-
-
为用户授予执行Shell脚本的权限
-
chmod
(英文全拼: change mode)命令:控制用户对文件的权限的命令Linux中的权限分为:
读(r)
、写(w)
、执行(x)
三种权限Linux的文件调用权限分为三级:
文件所有者(Owner)
、用户组(Group)
、其它用户(Other Users)
只有文件的所有者和超级用户可以修改文件或目录的权限
要执行Shell脚本需要有对此脚本文件的执行权限,如果没有则不能执行 -
chmod命令可以使用八进制数来指定权限
# 权限 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位表示其他用户的权限
-
-
-
执行Shell脚本
-
./Shell脚本文件名
-
2.2 设置静态ip
-
修改文件/etc/sysconfig/network-scripts/ifcfg-ens33(
注意
:不同设备的ifcfg-ens33文件名可能不一样)修改内容:
BOOTPROTO=“static” #
使用静态IP地址,默认为dhcp
粘贴如下几行:
IPADDR=“192.168.138.100” #
设置的静态IP地址
NETMASK= “255.255.255.0” #子网掩码
GATEWAY= “192.168.138.2” #网关地址
DNS1=“192.168.138.2” #DNS服务器
-
重启网络服务
systemctl restart network
注意
:重启完网络服务后ip地址已经发生了改变,此时FinalShell已经 连接不上Linux系统,需要创建一个新连接才能连接到Linux。