如何通过Linux Tomcat实现自动化部署,轻松提升工作效率?

更新于
2026-08-19 18:26:59
2阅读来源:SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

痛点在日常运维中。手动复制 WAR 包、清理缓存、重启 Tomcat 的重复操作耗时耗力,易出错导致服务中断;缺乏统一的自动化流程会让开发与运维团队协作变得低效。

一、自动化部署的必要性

因为项目迭代加速,频繁发布新版本已成为常态。每一次手工部署都可能出现方法错误、权限不足或忘记重启等失误,导致服务不可用或日志堆积。通过自动化部署,可将这些操作标准化、脚本化。显著降低人为错误,提高发布速度。

如何通过Linux Tomcat实现自动化部署,轻松提升工作效率?

二、Tomcat 在 Linux 上实现开机自启

1. 传统 init.d 脚本

# /etc/init.d/tomcat
#!/bin/sh
# chkconfig: - 85 15
# description: Tomcat service
start {
$CATALINA_HOME/bin/startup.sh
}
stop {
$CATALINA_HOME/bin/shutdown.sh
}
restart {
stop
start
}
case "$1" in
start) start;,stop) stop;,restart) restart;,话说回来,esac

设置执行权限并注册服务:

chmod +x /etc/init.d/tomcat
chkconfig --add tomcat
chkconfig tomcat on

2. Systemd

如何通过Linux Tomcat实现自动化部署,轻松提升工作效率?
# /etc/systemd/system/tomcat.service
Description=Apache Tomcat Web Application Container
After=network.target
Type=forking
Environment=JA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
ExecStart=$CATALINA_HOME/bin/startup.sh
ExecStop=$CATALINA_HOME/bin/shutdown.sh
User=tomcatuser
Group=tomcatgroup
WantedBy=multi-user.target

开启开机自启的观点是。

# systemctl daemon-reload # reload unit files after editing
systemctl enable tomcat # 开机启动
systemctl start tomcat # 开启服务
systemctl status tomcat # 检查状态

三、一键部署/升级脚本示例

该脚本完成停止 Tomcat、备份旧 WAR、复制新 WAR 并启动 Tomcat 的全流程。适合快速迭代场景,

# deploy.sh – 一键部署脚本
#!/bin/bash
# 项目方法与 Tomcat 方法请自行替换
PROJECT_PATH=/home/ubuntu/myapp/dist
TOMCAT_PATH=/opt/tomcat
# 停止 Tomcat 服务
$TOMCAT_PATH/bin/shutdown.sh
# 备份旧应用
mkdir -p $TOMCAT_PATH/backups/$
cp -r $TOMCAT_PATH/webapps/* $TOMCAT_PATH/backups/$/
# 清空 webapps 并复制新包
rm -rf $TOMCAT_PATH/webapps/*
cp -r $PROJECT_PATH/* $TOMCAT_PATH/webapps/
# 启动 Tomcat 服务
$TOMCAT_PATH/bin/startup.sh
echo "部署完成 – $"> $TOMCAT_PATH/logs/deploy.log

使用步骤

  • chmod +x deploy.sh
  • ./deploy.sh — 执行一次完整的停服–备份–升级–启动流程。
  • 可将其加入 cron 或 CI/CD 流水线,实现持续交付。

四、Maven TomCat 插件部署方式

Maven 的 tomc7-maven-plugin 可以在建立阶段直接把应用推送到远程 TomCat Manager,实现“建立即发布”。这对需要快速迭代而且已配置好 Manager 权限的项目非常友好。


org.apache.tomcat.maven
tomc7-maven-plugin
2.4

http://your-tomc-server:8080/manager/text
tomcatsrv
/${project.artifactId}
true
UTF-8

  • Maven 首次打包并发布: Mvn clean package tomc7:deploy
  • Maven 热更新: Mvn tomc7:redeploy
  • CICD 集成示例: 

五、Jenkins 流水线编排示例

CICD 环境下通过 Jenkinsfile 可以实现从代码拉取到打包再到自动部署的全链路流水线。话说回来,

关键要点

  • 脚本化:把所有手工步骤写入脚本,保证可复用与回滚。
  • 权限管理:使用非 root 使用者运行。并确保目录拥有相同归属,以免因权限导致失败。老实说,
  • 健康检查:在流水线里添加健康检查或监控告警。及时发现异常,老实说,
  • 日志追踪:统一记录日志位置。例如把 deploy.log 写入固定目录,方便排查。
  • 版本控制:保持脚本与 pom.xml 在同一 repo 内,配合 Git 标签做版本回滚。
  • 安全审计:使用 HTTPS 与基本认证保护 Manager 接口;不要在公开仓库暴露凭据,

六、 – 从“敲命令”到“点击一键”效率翻倍

标签:Linux

痛点在日常运维中。手动复制 WAR 包、清理缓存、重启 Tomcat 的重复操作耗时耗力,易出错导致服务中断;缺乏统一的自动化流程会让开发与运维团队协作变得低效。

一、自动化部署的必要性

因为项目迭代加速,频繁发布新版本已成为常态。每一次手工部署都可能出现方法错误、权限不足或忘记重启等失误,导致服务不可用或日志堆积。通过自动化部署,可将这些操作标准化、脚本化。显著降低人为错误,提高发布速度。

如何通过Linux Tomcat实现自动化部署,轻松提升工作效率?

二、Tomcat 在 Linux 上实现开机自启

1. 传统 init.d 脚本

# /etc/init.d/tomcat
#!/bin/sh
# chkconfig: - 85 15
# description: Tomcat service
start {
$CATALINA_HOME/bin/startup.sh
}
stop {
$CATALINA_HOME/bin/shutdown.sh
}
restart {
stop
start
}
case "$1" in
start) start;,stop) stop;,restart) restart;,话说回来,esac

设置执行权限并注册服务:

chmod +x /etc/init.d/tomcat
chkconfig --add tomcat
chkconfig tomcat on

2. Systemd

如何通过Linux Tomcat实现自动化部署,轻松提升工作效率?
# /etc/systemd/system/tomcat.service
Description=Apache Tomcat Web Application Container
After=network.target
Type=forking
Environment=JA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
ExecStart=$CATALINA_HOME/bin/startup.sh
ExecStop=$CATALINA_HOME/bin/shutdown.sh
User=tomcatuser
Group=tomcatgroup
WantedBy=multi-user.target

开启开机自启的观点是。

# systemctl daemon-reload # reload unit files after editing
systemctl enable tomcat # 开机启动
systemctl start tomcat # 开启服务
systemctl status tomcat # 检查状态

三、一键部署/升级脚本示例

该脚本完成停止 Tomcat、备份旧 WAR、复制新 WAR 并启动 Tomcat 的全流程。适合快速迭代场景,

# deploy.sh – 一键部署脚本
#!/bin/bash
# 项目方法与 Tomcat 方法请自行替换
PROJECT_PATH=/home/ubuntu/myapp/dist
TOMCAT_PATH=/opt/tomcat
# 停止 Tomcat 服务
$TOMCAT_PATH/bin/shutdown.sh
# 备份旧应用
mkdir -p $TOMCAT_PATH/backups/$
cp -r $TOMCAT_PATH/webapps/* $TOMCAT_PATH/backups/$/
# 清空 webapps 并复制新包
rm -rf $TOMCAT_PATH/webapps/*
cp -r $PROJECT_PATH/* $TOMCAT_PATH/webapps/
# 启动 Tomcat 服务
$TOMCAT_PATH/bin/startup.sh
echo "部署完成 – $"> $TOMCAT_PATH/logs/deploy.log

使用步骤

  • chmod +x deploy.sh
  • ./deploy.sh — 执行一次完整的停服–备份–升级–启动流程。
  • 可将其加入 cron 或 CI/CD 流水线,实现持续交付。

四、Maven TomCat 插件部署方式

Maven 的 tomc7-maven-plugin 可以在建立阶段直接把应用推送到远程 TomCat Manager,实现“建立即发布”。这对需要快速迭代而且已配置好 Manager 权限的项目非常友好。


org.apache.tomcat.maven
tomc7-maven-plugin
2.4

http://your-tomc-server:8080/manager/text
tomcatsrv
/${project.artifactId}
true
UTF-8

  • Maven 首次打包并发布: Mvn clean package tomc7:deploy
  • Maven 热更新: Mvn tomc7:redeploy
  • CICD 集成示例: 

五、Jenkins 流水线编排示例

CICD 环境下通过 Jenkinsfile 可以实现从代码拉取到打包再到自动部署的全链路流水线。话说回来,

关键要点

  • 脚本化:把所有手工步骤写入脚本,保证可复用与回滚。
  • 权限管理:使用非 root 使用者运行。并确保目录拥有相同归属,以免因权限导致失败。老实说,
  • 健康检查:在流水线里添加健康检查或监控告警。及时发现异常,老实说,
  • 日志追踪:统一记录日志位置。例如把 deploy.log 写入固定目录,方便排查。
  • 版本控制:保持脚本与 pom.xml 在同一 repo 内,配合 Git 标签做版本回滚。
  • 安全审计:使用 HTTPS 与基本认证保护 Manager 接口;不要在公开仓库暴露凭据,

六、 – 从“敲命令”到“点击一键”效率翻倍

标签:Linux