使用批处理文件重启远程tomcat以停止手动干预重启?

时间:2014-02-04 07:26:29

标签: java windows tomcat batch-file cmd

我想使用批处理文件重启远程tomcat实例。有可能吗?

流量:

Stop tomcat

execute some sql script

start tomcat

有可能吗?如果是这样,你能否给我一些见解来实现这个目标?

谢谢!

3 个答案:

答案 0 :(得分:2)

当然有可能。 在我的头顶:

  1. 您可以使用可在tomcat bin目录中找到的脚本(startupshutdowncatalina)来控制tomcat。文件扩展名取决于平台(Windows的.bat,Unix的.sh
  2. 要远程运行这些脚本,请使用ssh或telnet连接。
  3. 您还可以使用服务管理器控制tomcat。这些工具取决于您的平台。

答案 1 :(得分:0)

您可以远程部署,启动,停止和重新启动tomcat。为此,您必须执行以下步骤:

  1. 要控制tomcat,您可以编写ant build脚本。
  2. 编写批处理脚本并调用ant脚本以执行所需的目标。比如停止tomcat。
  3. 执行您想要的任务
  4. 在ant脚本中执行目标以再次启动tomcat。
  5. 如何远程操作tomcat,您可以使用以下链接:

    http://tomcat.apache.org/tomcat-7.0-doc/manager-howto.html

答案 2 :(得分:0)

我编写了一个ant build脚本,它将重启tomcat并清除tomcat缓存。只需将xml文件放入tomcat / bin即可。用于等待服务器停止的代码似乎并不适用于所有系统,因此我只添加了一个等待3分钟的目标。

{代码}

<property name="startServer.dir" value="." />
<property name="startServer.cmd.unix" value="startup.sh"/>
<property name="startServer.cmd.windows" value="startup.bat"/>
<property name="stopServer.cmd.unix" value="shutdown.sh"/>
<property name="stopServer.cmd.windows" value="shutdown.bat"/>
<property name="maven.port" value="8080"/>
<property name="deployed.cache" value="../work"/>


<!-- stop web server targets -->
<target name="stop" depends="" description="stop app server which is configured on this system">
    <echo message="Attempting to stop app server ${startServer.dir}"/>
    <echo message="${stopServer.cmd.unix} / ${stopServer.cmd.windows}"/>
    <exec dir="${startServer.dir}" osfamily="unix" executable="sh" timeout="18000">
        <arg line="${stopServer.cmd.unix}"/>
    </exec>
    <exec dir="${startServer.dir}" osfamily="windows" executable="cmd" timeout="18000">
        <arg line="/c ${stopServer.cmd.windows}"/>
    </exec>
    <echo message="waiting for server to stop"/>
    <waitfor maxwait="5" maxwaitunit="minute" checkevery="500">
        <not>
            <http url="http://localhost:${maven.port}"/>
        </not>
    </waitfor>
</target>

<target name="pause">
    <echo message="Pausing for 3 minutes to make sure server is stopped" />
    <sleep minutes="3"/>
</target>

<!-- start web server targets -->
<target name="start" description="start app server which is configured on this system">
    <echo message="Attempting to start app server server ${startServer.dir}"/>
    <echo message="${startServer.cmd.unix} / ${startServer.cmd.windows}"/>
    <exec dir="${startServer.dir}" osfamily="unix" executable="sh" spawn="true">
        <arg line="${startServer.cmd.unix}"/>
    </exec>
    <exec dir="${startServer.dir}" osfamily="windows" executable="cmd" spawn="true">
        <arg line="/c ${startServer.cmd.windows}"/>
    </exec>
</target>

<target name="cleanTomcat" description="Remove tomcat cashe">
    <delete dir="${deployed.cache}" verbose="true"/>
</target>

<target name="restart" depends="stop,pause,cleanTomcat,start"/> 

{代码}