如何使用 shell 始终获取下载 tomcat 服务器的最新链接

2024-04-03

我写了一个shell脚本来下载并安装tomcat服务器v (8.5.31). wget http://www.us.apache.org/dist/tomcat/tomcat-8/v8.5.31/bin/apache-tomcat-8.5.31.tar.gz它工作得很好,但是一旦版本更改为9.0.10,它开始给出错误404 未找到。 那么我应该怎么做才能始终获得最新版本。


TL;DR

TOMCAT_VER=`curl --silent http://mirror.vorboss.net/apache/tomcat/tomcat-8/ | grep v8 | awk '{split($5,c,">v") ; split(c[2],d,"/") ; print d[1]}'`
wget -N http://mirror.vorboss.net/apache/tomcat/tomcat-8/v${TOMCAT_VER}/bin/apache-tomcat-${TOMCAT_VER}.tar.gz

我遇到了同样的挑战。 然而,对于我的解决方案,我需要最新的 8.5.x Tomcat 版本,该版本不断变化。

由于下载 Tomcat 的 URL 保持不变,只是版本发生了变化,我发现以下解决方案适合我:

TOMCAT_VER=`curl --silent http://mirror.vorboss.net/apache/tomcat/tomcat-8/ | grep v8 | awk '{split($5,c,">v") ; split(c[2],d,"/") ; print d[1]}'`
echo Tomcat version: $TOMCAT_VER
Tomcat version: 8.5.40

grep v8- 返回具有所需版本的行:

<img src="/icons/folder.gif" alt="[DIR]"> <a href="v8.5.40/">v8.5.40/</a>                2019-04-12 13:16    - 

awk '{split($5,c,">v") ; split(c[2],d,"/") ; print d[1]}'- 提取我们想要的版本:

8.5.40

然后,我继续使用提取的版本下载 Tomcat:

wget -N http://mirror.vorboss.net/apache/tomcat/tomcat-8/v${TOMCAT_VER}/bin/apache-tomcat-${TOMCAT_VER}.tar.gz

这是完整的curl响应,使用curl、grep和awk从中提取版本:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
 <head>
  <title>Index of /apache/tomcat/tomcat-8</title>
 </head>
 <body>
<h1>Index of /apache/tomcat/tomcat-8</h1>
<pre><img src="/icons/blank.gif" alt="Icon "> <a href="?C=N;O=D">Name</a>                    <a href="?C=M;O=A">Last modified</a>      <a href="?C=S;O=A">Size</a>  <a href="?C=D;O=A">Description</a><hr><img src="/icons/back.gif" alt="[PARENTDIR]"> <a href="/apache/tomcat/">Parent Directory</a>                             -   
<img src="/icons/folder.gif" alt="[DIR]"> <a href="v8.5.40/">v8.5.40/</a>                2019-04-12 13:16    -   
<hr></pre>
<address>Apache/2.4.25 (Debian) Server at mirror.vorboss.net Port 80</address>
</body></html>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 shell 始终获取下载 tomcat 服务器的最新链接 的相关文章

  • MySQL JDBC 连接上的故障转移?

    我正在尝试确定如何使用 MySQL JDBC 驱动程序实现高可用性解决方案 似乎有一个我可以设置的故障转移属性 但我想知道当使用 MySQL 和 JDBC 实现简单的故障转移机制时 人们倾向于使用什么 我们计划将 2 个前端 Tomcat
  • 您是否对基于 GWT 的应用程序的客户端和服务器端使用单个项目或单独的项目?

    您的 GWT 项目设置如何 您是否有一个针对客户端的项目和针对服务器端的单独项目 您能分享一下您为 GWT 前端 Spring 后端系统组织项目的经验吗 我希望在这个项目中使用 Spring GWT Tomcat Hibernate 除非您
  • 检查 Bash 数组中是否存在元素[重复]

    这个问题在这里已经有答案了 我想知道是否有一种有效的方法来检查 Bash 数组中是否存在元素 我正在寻找类似于我可以在Python中做的事情 例如 arr a b c d if d in arr do your thing else do
  • adb shell:无法使用 ESCAPE 键

    I want to use vi when running adb shell Starting vi is easy However I found that the ESC key doesn t seem to get through
  • 无需 root 访问权限即可安装 zsh? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 有可能 以及如何 我确实需要在几台具有 ssh 访问权限 但没有 root 访问权限 的远程计算机上使用此功能 下载 zsh wget O zsh t
  • 为什么 shell=True 的 subprocess.Popen() 在 Linux 和 Windows 上的工作方式不同?

    使用时subprocess Popen args shell True 跑步 gcc version 仅作为示例 在 Windows 上我们得到 gt gt gt from subprocess import Popen gt gt gt
  • Tomcat 基于表单的身份验证出现 HTTP 状态 408 错误

    我的申请是写在JSP并且有基于表单的身份验证 我正在使用 Apache 和 Tomcat 7 这是我的问题 有时 当会话超时并尝试重新登录应用程序时 它会显示以下 408 错误消息 HTTP 状态 408 已超出登录过程允许的时间 如果您想
  • 为什么这个 FilesMatch 匹配不正确?

    我们一直在尝试将服务器配置为不缓存 htm 文件 因为它会导致我们的分析包出现一些问题 并且如果访问者点击浏览器中的后退按钮 则无法正确显示页面 我们尝试通过添加以下内容来解决这个问题
  • 在Tomcat中设置环境变量TESSDATA_PREFIX

    我们正在使用名为 Tess4J 的 Tesseract OCR Java 库 如果作为独立应用程序运行 它可以正常工作 它需要一个名为 TESSDATA PREFIX 的变量 其中包含 tessdata 配置和其他字符集相关文件 它也可以与
  • 使用运算符 j 操作 zsh 数组

    以下代码摘自here http eseth org 2010 git in zsh html function vi git st local ahead behind remote local a gitstatus Are we on
  • 比较linux中的两个未排序列表,列出第二个文件中的唯一项

    我有 2 个包含号码列表 电话号码 的文件 我正在寻找一种列出第二个文件中第一个文件中不存在的数字的方法 我尝试过各种方法 comm getting some weird sorting errors fgrep v x f second
  • 使用 grep 查找所有匹配的模式

    In txt1 S01A1P2 S01A1P5 S01A1P4 In txt2 data train wave S01A1P3 mfc data train wave S01A1P7 mfc data train wave S01A1P8
  • 从命令行更改 konsole 选项卡标题并使其持久?

    如何更改 konsole 选项卡标题 默认情况下 它设置为 u n 所以它总是自动改变 我可以这样设置 qdbus org kde konsole KONSOLE DBUS SESSION setTitle 1 My Title 但是一旦您
  • Maven WebApp META-INF context.xml

    我正在使用 Maven 3 并且尝试在 webapp 文件夹下添加 META INF 文件夹 所以我正在尝试执行以下操作 src main webapp META INF context xml WEB INF 下面是我的 POM 文件
  • 如何使用eclipse调试JSP tomcat服务?

    我想使用 Eclipse IDE 调试器来调试单独运行的 JSP Struts Tomcat Hibernate 应用程序堆栈 如何设置 java JVM 和 eclipse 以便设置断点 监视变量值并查看当前正在执行的代码 我刚刚用谷歌搜
  • Python 子进程:无法转义引号

    我知道以前曾问过类似的问题 但它们似乎都是通过重新设计参数的传递方式 即使用列表等 来解决的 但是 我这里有一个问题 因为我没有这个选项 有一个特定的命令行程序 我使用的是 Bash shell 我必须向其传递带引号的字符串 它不能不被引用
  • 通过 Node.js 运行 bash 脚本 - 非法选项 -o pipelinefail

    我正在尝试使用 Node js 执行 bash 脚本child process exec 然而它在文件的第二行爆炸 usr bin env bash set eo pipefail TRACE set x echo we are here
  • shell脚本中是否有互斥/信号量机制?

    我正在 shell 脚本中寻找互斥 信号量 并发机制 考虑以下情况 除非 a 用户不关闭共享文件 否则 b 用户应该无法打开 更新它 我只是想知道如何在 shell 脚本中实现互斥量 信号量 临界区等 在 shell 脚本中实现锁定机制 文
  • LaunchAgent 不运行 shell 脚本

    在 Catalina 之前的 macOS 下 我有一个每天运行 shell 脚本的 LaunchAgent 升级并切换到 zsh 后 它不起作用 我检查过的事情 shebang 切换到 zsh shell脚本可以从命令行手动执行 sh 在系
  • PHP 日志文件颜色

    我正在编写一个 PHP 日志文件类 但我想为写入文件的行添加颜色 我遇到的问题是颜色也会改变终端的颜色 我想要实现的是仅更改写入日志文件的行的颜色 class logClass extends Singleton private funct

随机推荐

  • Kubernetes Prometheus CrashLoopBackOff / OOMKilled 谜题

    我定期看到容器状态 已终止 OOMKilled 退出代码 137 但调度到内存充足的节点 k get statefulset n metrics NAME READY AGE prometheus 0 1 232d k get po n m
  • 为什么 VS Code 有强调项但没有错误?

    我正在用 VS code 编写一个 React 项目 我在VS代码中遇到了这个问题 在我的项目中 这个文件夹显示包含强调的项目我知道这意味着我的文件中有错误 但在图中 我检查了所有文件 但没有发现错误 所以这让我感到很困惑 我在google
  • Java 8 流比较两个对象并在它们上运行函数

    我有一个流 我想根据匹配的 Id 将其分成更小的部分 然后对每个部分 元素应用一些处理逻辑 class BigRequest String bId List
  • 将触发器监视器作为 MQ 服务对象 - 如何获取状态

    我创建了一个 MQ 服务对象来运行我的触发器监视器 DEFINE SERVICE TriggerMonitor CONTROL QMGR STARTCMD C Program Files x86 IBM WebSphere MQ bin r
  • 如何在文件夹名称带有空格的批处理文件中写入完整路径?

    我正在批处理文件中编写以下命令 REGSVR32 E Documents and Settings All Users Application Data xyz dll 运行此命令后 我收到以下错误 LodLibrary e Documen
  • 如何在 Spring-data JPA 中映射名称中带有下划线“_”的类属性

    使用 Spring Data 的 JPA 是否存在名称中带有下划线 的属性的问题 这是我的扩展界面JpaRepository public interface I My Class extends JpaRepository
  • 如何使用 Laravel Tinker 编写新行

    如何使用 Laravel Tinker 换行 所以而不是 users User all foreach users as user echo user gt email 我希望能够写成如下 users User all foreach us
  • QGLWidget 和快速离屏渲染

    是否可以在屏幕外完全渲染QGLWidget使用 Qt 无需将场景重新绘制到屏幕 从而完全避免缓冲区在监视器上翻转 我需要保存帧缓冲区上生成的每一帧 但是 由于序列由 4000 帧组成 并且屏幕上的时间间隔为15ms我花费4000 15ms
  • Django唯一随机作为默认值

    在将某个值指定为默认值时 有什么方法可以检查模型中是否存在该值 如果分配值存在 不唯一 则生成另一个值 阅读评论 def unique rand return Generate a random string with 8 characte
  • 我有两个类型定义,如何确定一个类型是否是另一个的基类型?

    我在 ActionScript 3 中有两个类型定义 Class 类型的引用 我需要确定其中一个是否是另一个的基类型 类或接口 我本来希望像下面这样的东西会起作用 但遗憾的是它没有 var isBaseClass Boolean Mouse
  • 如何从 Golang 访问 C 指针数组

    我正在使用 FFmpeg 为 Windows 平台编写一个应用程序 它是 golang 包装器 goav 但我无法理解如何使用 C 指针来访问数组 我试图获取存储在 AVFormatContext 类中的流以在 go 中使用 并最终将帧添加
  • ToString("0") 与 ToString(CultureInfo.InvariantCulture)

    我想确保我的应用程序中的某些数字在打印时没有任何分隔符 分组等 无论当前环境如何 似乎以下两种方法产生相同的结果 可能还有更多 123456789 ToString 0 123456789 ToString CultureInfo Inva
  • 为什么 Rails 不引发 I18n::MissingInterpolationArgument 异常?

    我创建了一个虚拟 Rails 4 1 5 应用程序来显示 I18ntranslate当未提供要插值的变量时 方法不会引发 I18n MissingInterpolationArgument 仅当提供错误的内容时才会引发该异常 这是预期的行为
  • 从源代码构建 Docker 失败

    从 dotcloud docker git 克隆之后 cd docker sudo make VERBOSE 1 Fetching https net http cookiejar go get 1 https fetch failed u
  • 撤消已推送的合并

    好吧 我弄得有点乱了 显然 在我家里的机器上 开发分支没有更新 我做出了承诺并推动了 结果是实际的 origin develop 分支已合并到我的本地开发分支中 由于某种原因 它被视为不同的分支 一方面 我真的不明白这是怎么发生的 其次 我
  • 通用二叉树节点析构函数问题

    我一直在做一项作业 现在我被有问题的析构函数困住了 我必须创建一个包含所有常用成员函数和一些特殊运算符的通用二叉树 还有一个限制 一切都必须迭代地工作 所以这次没有令人讨厌的递归黑客 BinTreeNode 类的析构函数显然有一些非常错误的
  • Laravel 中 detach() 方法也可以应用于一对多关系吗?

    在 Laravel 文档中 我发现 detach 方法可以分离多对多关系中的所有对象 detach 方法也可以应用于 Laravel 中的一对多关系吗 如果不是 在这种情况下如何分离所有 n 个对象 在多对多关系中 detach 方法仅删除
  • 更改通过文字初始化创建的对象的原型

    假设我只想使用 不是构造函数 我有一个这样的对象 var o name Jack 如果我想创建另一个对象 其原型是o我使用这个语法 var u Object create o console log u name prints Jack u
  • 传递具有可变大小的二维数组

    我正在尝试将二维数组从一个函数传递到另一个函数 然而 数组的大小不是恒定的 尺寸由用户决定 我曾尝试对此进行研究 但运气不佳 大多数代码和解释都是针对数组的恒定大小 在我的函数中A我声明该变量 然后对其进行一些操作 然后必须将其传递给 Fu
  • 如何使用 shell 始终获取下载 tomcat 服务器的最新链接

    我写了一个shell脚本来下载并安装tomcat服务器v 8 5 31 wget http www us apache org dist tomcat tomcat 8 v8 5 31 bin apache tomcat 8 5 31 ta