[含完整代码]Linux使用.sh脚本自动部署(启动|停止|状态|日志)项目[超详细]

这篇具有很好参考价值的文章主要介绍了[含完整代码]Linux使用.sh脚本自动部署(启动|停止|状态|日志)项目[超详细]。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言:

个人博客:www.wdcdbd.com

  我们在linux部署.jar项目时,都需要通过java -jar的形式来部署,每次都要手动停止,部署,这样用起来会很麻烦。所以,这篇文章就是自己通过.sh脚本一键启动停止重启查看状态查看日志。这样会方便一些。

一、编写.sh脚本前准备工作

  1.  将你的java项目放到你linux习惯的位置
  2. 创建一个.sh文件,名字自定义。

[含完整代码]Linux使用.sh脚本自动部署(启动|停止|状态|日志)项目[超详细],Linux,linux,运维,服务器

我就给他命名为Three.sh了,具体你可以自定义

注意!!在编写.sh脚本文件时,不可以在windows环境下写好之后再放到linux环境中,因为两套系统使用的格式是不一样的。Windows下换行符号是“\r\n”,而linux下是“\n”没有”\r”,当shell脚本是在Windows下编写的时候,默认所有的换行符都是“\r\n”,linux下是没办法正确识别这个文件的。如果你已经这样做了,那么就要在linux下执行以下命令来去除掉/r
 

sed -i 's/\r$//'  sh文件名.sh

二、编写.sh脚本文件

 这是完整脚本代码。为了让大家更直观的看到脚本文件中的所有命令,下边我就将启动,停止,重启,查看状态,查看日志,这几个命令拆开来讲解如果已经对其有一些了解的话,可以直接使用这个完整的脚本代码,进行修改即可。

#!/bin/bash


# jar包路径-你放置jar包的路径,可自定义
HOME='/home/dblog'

# 启动
start(){
cd $HOME
# 将java程序后台启动,并将启动日志指向springBootThree-1.0.log中
nohup java -jar springBootThree-1.0.jar > springBootThree-1.0.log 2>&1 & 
# 打印字符串
echo "启动成功"
}

# 停止
stop(){
 # 查询到项目的pid
 tpid=$(ps -ef | grep springBootThree-1.0.jar | grep -v grep | awk '{print $2}')
 # 判断是否为空 
if [ -z "$tpid" ]
 then
# 如果为空 则打印这句话
  echo Application is already stpped
 else
# 如果不为空则执行
  echo kill $tpid 
# 关闭进程
  kill -9 $tpid

  echo "程序已关闭"
fi
}

# 查看状态
status(){
 # 获取pid的
 pid=$(ps -ef | grep springBootThree-1.0.jar | grep -v grep)

 if [ -z "$pid" ]
then
 echo "程序不存在"
else
 echo $pid
fi
}

# 查看日志信息
log(){
tail -f $HOME/springBootThree-1.0.log
}

case $1 in
 start)
  start
;;
stop)
  stop
;;
status)
  status
;;
log)
  log
;;
restart)
 $0 stop
 sleep 5
 $0 start
;;
*)
 echo "只能是{start|stop|log|restart}"
;;
esac
exit 0

0、.sh脚本格式

[含完整代码]Linux使用.sh脚本自动部署(启动|停止|状态|日志)项目[超详细],Linux,linux,运维,服务器

第一行必须是这个,没有什么为什么格式就是这样

1、启动

#!/bin/bash


# jar包路径-你放置jar包的路径,可自定义
HOME='/home/dblog'

# 启动
start(){
cd $HOME
# 将java程序后台启动,并将启动日志指向springBootThree-1.0.log中
nohup java -jar springBootThree-1.0.jar > springBootThree-1.0.log 2>&1 &
# 打印字符串
echo "启动成功"
}

[含完整代码]Linux使用.sh脚本自动部署(启动|停止|状态|日志)项目[超详细],Linux,linux,运维,服务器

2、停止

注意!!(小坑): .sh脚本语法是强语法结构,所以格式很重要,使用if判断时,中间的条件左右必须有空格

# 停止
stop(){
 # 查询到项目的pid
 tpid=$(ps -ef | grep springBootThree-1.0.jar | grep -v grep | awk '{print $2}')
 # 判断是否为空 
if [ -z "$tpid" ]
 then
# 如果为空 则打印这句话
  echo Application is already stpped
 else
# 如果不为空则执行
  echo kill $tpid 
# 关闭进程
  kill -9 $tpid

  echo "程序已关闭"
fi
}

[含完整代码]Linux使用.sh脚本自动部署(启动|停止|状态|日志)项目[超详细],Linux,linux,运维,服务器

3、查看状态

# 查看状态
status(){
 # 获取pid的
 pid=$(ps -ef | grep springBootThree-1.0.jar | grep -v grep)

 if [ -z "$pid" ]
then
 echo "程序不存在"
else
 echo $pid
fi
}

[含完整代码]Linux使用.sh脚本自动部署(启动|停止|状态|日志)项目[超详细],Linux,linux,运维,服务器

4、查看日志

log(){
tail -f $HOME/springBootThree-1.0.log
}

[含完整代码]Linux使用.sh脚本自动部署(启动|停止|状态|日志)项目[超详细],Linux,linux,运维,服务器

 5、case语法

最后使用case语法 将其联系起来即可

# 判断外部输入的是什么关键词 (start|stop|status|log|restart)
case $1 in
 start)
  start
;;
stop)
  stop
;;
status)
  status
;;
log)
  log
;;
restart)
 $0 stop
 sleep 5
 $0 start
;;
*)
 echo "只能是{start|stop|log|restart}"
;;
esac
exit 0

[含完整代码]Linux使用.sh脚本自动部署(启动|停止|状态|日志)项目[超详细],Linux,linux,运维,服务器

6、 最后

保存当前.sh文件,然后使用 chmod 777 文件名 变为可执行文件。

其实使用 chmod +x 文件名 给一个执行权限就可以了,但是我闲麻烦,所以就直接设置最大权限啦。

[含完整代码]Linux使用.sh脚本自动部署(启动|停止|状态|日志)项目[超详细],Linux,linux,运维,服务器

 三、执行.sh脚本

查看状态: ./Three.sh status

启动项目:./Three.sh start

查看日志: ./Three.sh log

关闭项目: ./Three.sh stop

重启项目: ./Three.sh restart

[含完整代码]Linux使用.sh脚本自动部署(启动|停止|状态|日志)项目[超详细],Linux,linux,运维,服务器

这就是.sh脚本自动部署脚本的基本使用方式了,快去掌握吧。文章来源地址https://www.toymoban.com/news/detail-806025.html

到了这里,关于[含完整代码]Linux使用.sh脚本自动部署(启动|停止|状态|日志)项目[超详细]的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • linux下Jenkins的安装、部署、启动(完整教程)

    Linux系统Centos 7 1、安装jdk8 2、安装jenkins 首先依次如下三个命令: 2.1 导入镜像 出现以下问题 我们的解决方法是安装一个 ca-certificates 包 2.2 导入公钥 2.3 安装jenkins 2.4 修改配置文件 2.5 启动jenkins Job for jenkins.service failed because the control process exited with error code. See “systemctl stat

    2024年01月19日
    浏览(32)
  • RK android 9.0 添加sh脚本开机自动运行

    diff --git a/device.mk b/device.mk old mode 100644 new mode 100755 index 4c698b7..c635798 --- a/device.mk +++ b/device.mk @@ -126,6 +126,8 @@ PRODUCT_COPY_FILES +=      $(call add-to-product-copy-files-if-exists,device/rockchip/common/init.$(TARGET_BOARD_HARDWARE).bootmode.nvme.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.$(TARGET_BOARD_HARDWARE).bootm

    2024年02月08日
    浏览(69)
  • Linux开机自启.sh脚本(简单粗暴)

    1、创建脚本 (1)#切换到你将要存脚本的目录 (2)编写脚本autorun.sh 以下为脚本内容: (该执行脚本的意思是在/home目录下创建一个input.txt文件夹,并写入当前日期和hostname)  2、将该脚本添加到启动文件中 执行以下命令: 在最后一行添加你写的脚本(从根目录开始写)

    2024年02月12日
    浏览(36)
  • 在linux上启动、重启、查询、停止java服务脚本,并且设置定时任务自动执行

    以下代码来源于另一位博主,在实践过程中需要设置定时任务,所以遇到一些问题,把没有写清楚的地方优化了一下。 我们把上面的脚本复制到以下目录的脚本文件/data/www/shtools/startmanage.sh,执行命令可以得到不同的结果。 设置的三个定时任务运行脚本, 第一个是0 3 * * *

    2024年02月07日
    浏览(47)
  • linux中编写.sh脚本并赋权限问题

    以项目启动、重启、终止脚本为例: 步骤: 首先 vi start.sh 、 vi restart.sh 、 vi stop.sh 或者使用 vim 编辑器; 编辑内容: 启动: vi start.sh 重启: vi restart.sh 关闭: vi stop.sh 保存并退出; chmod +x start.sh restart.sh stop.sh 赋予可执行权限; 输入 ./start.sh 、 ./restart.sh 、 ./stop.sh 执行脚

    2024年02月04日
    浏览(25)
  • Linux执行sh脚本文件提示Permission denied

    在Linux终端运行脚本文件时,提示Permission denied,意思是权限不足。 解决方法:检查文件权限,权限不足时,赋予执行权限 使用chmod更改文件权限:      -R:是级联应用到目录里的所有子目录和文件      777:是所有用户都拥有最高权限

    2024年02月16日
    浏览(49)
  • Linux终端执行.sh脚本,提示权限不够的解决办法

    错误提示如下: [root]# ./run_train_p bash: ./run_train_p: 权限不够 解决方法 [root]# chmod 777 ./run_train_p [root]# ./run_train_p

    2024年02月14日
    浏览(33)
  • 远程Linux/ubuntu服务器后台不间断运行py文件/sh脚本

    通常我们在生产环境中运行一些项目时需要将程序不间断的运行在服务器上,并且将日志文件打印到某个文件中,直到程序运行结束,下面介绍了在Linux服务器上不间断运行py文件的方式,以及如何保存相应的日志信息。 对于 .py 文件,在对应路径下运行远程终端命令行指令:

    2024年02月10日
    浏览(38)
  • 使用java执行bat、sh脚本文件

    在工作中,由于需求,需要完成让java去调用.bat文件和.sh文件的操作,接下来开始编码 此处用到了糊涂工具类 maven如下 由此代码来执行bat或sh脚本文件(PS:糊涂工具包用不用无所谓,只是用来判断是否为windows系统的)

    2024年02月12日
    浏览(36)
  • shell_73.Linux使用新 shell 启动脚本

    每次启动新 shell,bash shell 都会运行.bashrc 文件。①对此进行验证,可以使用这种方法:在 主目录下的.bashrc 文件中加入一条简单的 echo 语句,然后启动一个新 shell。 .bashrc 文件通常也借由某个 bash 启动文件来运行,因为.bashrc 文件会运行两次:一次是当 用户登录 bash shell 时,

    2024年02月05日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包