首页 > 系统相关 >全程电子化升级脚本SHELL

全程电子化升级脚本SHELL

时间:2024-07-18 15:31:03浏览次数:13  
标签:SHELL Tomcat tomcat webapps 目录 全程 电子化 war dir

 

黑龙江

ICPSP_UP.sh  

#!/bin/bash

# 定义变量
formatted_date=$(date +"%Y%m%d")  # 获取当前日期,格式为YYYYMMDD
tomcat_dir="/opt/tomcat/apache-tomcat-9.0.70_icpsp/"  # Tomcat的根目录
ftp_dir="${tomcat_dir}sun"  # FTP上传文件的目录
war_file="ICPSP.war"  # WAR文件的原始名称
backup_dir="webapps-${formatted_date}"  # 备份目录名称,包含日期
root_war="${tomcat_dir}webapps/ROOT.war"  # 需要部署的目标WAR文件路径

# 创建备份目录
mkdir -p "${tomcat_dir}${backup_dir}"  # 在Tomcat目录下创建备份目录

# 如果需要,重命名WAR文件
cd "${ftp_dir}" || exit  # 切换到FTP目录
if [[ -f "${war_file}" ]]; then  # 检查WAR文件是否存在
    mv "${war_file}" "ROOT.war"  # 如果存在,重命名为ROOT.war
fi

# 停止Tomcat服务
cd "${tomcat_dir}/bin" || exit  # 切换到Tomcat的bin目录
./shutdown.sh  # 尝试优雅地停止Tomcat
sleep 5  # 等待Tomcat完全停止

# 如果Tomcat仍在运行,强制停止
if pgrep -f "java.*${tomcat_dir}" > /dev/null; then  # 检查是否有Tomcat相关的Java进程
    ps aux | grep "${tomcat_dir}" | grep -v grep | awk '{print $2}' | xargs kill -9  # 强制杀死所有Tomcat相关进程
fi

# 备份现有的webapps目录
mv "${tomcat_dir}webapps" "${tomcat_dir}${backup_dir}"  # 将webapps目录移动到备份目录
echo "项目备份完成。"

# 复制新的WAR文件到Tomcat的webapps目录
cp -a "${ftp_dir}/ROOT.war" "${tomcat_dir}webapps/"  # 将新的WAR文件复制到webapps目录
sleep 10  # 等待一段时间,确保文件操作完成
echo "项目替换完成。"

# 启动Tomcat服务
cd "${tomcat_dir}/bin" || exit  # 再次切换到Tomcat的bin目录
./startup.sh  # 启动Tomcat
echo "项目启动。"

# 显示实时日志
tail -f "${tomcat_dir}logs/catalina.out"  # 显示Tomcat的日志文件,跟踪启动过程和运行状态

 

标签:SHELL,Tomcat,tomcat,webapps,目录,全程,电子化,war,dir
From: https://www.cnblogs.com/JIKes/p/18309622

相关文章

  • Shell编程速查手册(仅入门)
    一.Shell概述Shell是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言。Shell是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Shell脚本(shellscript),是一种为shell编写的脚本程序......
  • 【攻防技术系列】shellcode免杀
    接上文:【攻防技术系列】shellcode初识二、shellcode简单免杀2.1什么是免杀?免杀技术全称为反杀毒技术(AntiAnti-Virus)简称“免杀“。它指的是一种能使病毒木马免于被杀毒软件查杀的技术。由于免杀技术的涉猎面非常广,包含反汇编、逆向工程、系统漏洞等技术,所以难度很高。2.2......
  • Linux入门---(二)shell命令
    1.1man获得帮助信息help只能查询内嵌命令,外部命令查询格式:命令--help1.2快捷键ctrl+u,清空当前已输入,但未执行的命令1.3文件目录类从根目录/开始的就是绝对路径,从当前文件夹开始的就是相对路径pwd显示当前工作目录的绝对路径ls列出目录的内容(ls-a列出全部文件)cd切......
  • KU链接:如何在Linux作业系统上安装Azure PowerShell
    本文由KU链接вт989点сс原创编译,AzPowerShell模组是汇总模组。安装它会下载正式运作的AzPowerShell模组,并让其Cmdlet可供使用,本文说明如何在Linux上安装AzPowerShell模组。必要条件安装支援的PowerShell第7版或更新版本安装开启终端机或其他壳层主机应......
  • Shell介绍
    Shell是一种命令行界面程序,常用于与操作系统进行交互。它是操作系统的外壳,提供了一种用户使用操作系统功能的方式。Shell可以理解为用户与操作系统之间的接口,用户通过输入命令来告诉操作系统要执行的操作,然后操作系统会执行相应的命令并返回结果给用户。Shell可以执行各种操作......
  • 在 PowerShell 中Get-WmiObject Win32_PhysicalMemory,SMBIOSMemoryType 是一种用于描
    在PowerShell中Get-WmiObjectWin32_PhysicalMemory,SMBIOSMemoryType是一种用于描述系统中物理内存类型的属性。数字26表示特定的内存类型,具体为DDR4内存。每种内存类型在SMBIOS(SystemManagementBIOS)规范中都有一个对应的数字码,用来标识不同类型的内存。以下是一些常见......
  • 【Powershell】超越限制:获取Azure AD登录日志
    你是否正在寻找一种方法来追踪AzureActiveDirectory(AzureAD)中用户的登录活动?如果是的话,查看AzureAD用户登录日志最简单的方法是使用MicrosoftEntra管理中心。打开https://entra.microsoft.com/,然后进入监视和健康状况->登录日志这里查看到的是全部用户的登录日......
  • 【Linux杂货铺】期末总结篇4:shell编程
    ......
  • 使用Python编写webshell及防范措施
    本文使用python编写一个简单的webshell脚本,并讨论如何防范webshell。 文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言        在渗透测试和网络安全领域,Webshell是一种用于远程控制和管理受害服务器的工具。Webshell通常是一个脚......
  • 第三节SHELL脚本中的变量与运算(1.6-1.7.3)
    1,6常见的系统及变量在系统中被预设变量如下变量说明PATH命令的搜索路径,以冒号作为分隔符HOME用户的家目录的路径,是cd命令的默认参数COLUMNS命令行编辑模式下可使用命令的长度HISTFILE命令历史的文件路径HISTFLESIZE命令历史中包含的最大行数HISTSIZEhistory命令输出的......