• Windows下监控端口号


    例如tomcat 端口号 如果tomcat 死掉 并重启

    @echo off
    
    rem 读取tomcat死之前 的配置文件 depotupdate赋予默认值 !null  升级失败造成的tomcat 死亡(java -jar 升级程序)  如果没有此值或者此文件 不知为何tomcat 会死 5分钟检测一次
      
    set depotupdate=null
    set tomcatPort=80
    set URL="http://localhost:%tomcatPort%/depot/TestServlet"
    set httpcode=0
    
    rem 判断 tomcat 死活 
    
    for /l %%i in (1,1,10) do (  
        echo %%i
        rem 借助工具获得项目的状态头(curl工具的安装会在下面提及)
        for /f "delims=" %%r in ('curl -sL -w "%%{http_code}" %URL% -o /dev/null') do (
        rem 将变量r的值赋值给httpcode
            set httpcode=%%r
        )
    )
    
    
    rem 判断 tomcat 是如何死的 如果是升级造成死亡 执行升级程序 否则直接启动
    
    for /f "tokens=1,2 delims==" %%i in (%ETC_HOME%ETC_Managentapache-tomcatconfupdate.properties) do (
    if "%%i"=="depotupdate" set depotupdate=%%j
    if "%%i"=="tomcatPort" set tomcatPort=%%j
    )
    
    
    
    echo 是否通断 %httpcode%
    echo 端口号 %tomcatPort%
    
    rem 判断 httpcode  是否 ==200   200 说明通tomcat 还活着 ,  不是200 说明不通  不同说明 tomcat 死了 启动
    
    if not %httpcode%==200 (
    
           netstat -ano|findstr 0.0.0.0:%host%>pid.txt
    
            rem 查找进程记录,提取第5列的值,并终止进程,for 默认根据空格,制表符,;等进行字符串分割
              for /f "tokens=5" %%i in (%cd%pid.txt) do (
                    echo 虽然tomcat 死了但是进程依旧存在 杀死
    	echo try to kill pid %%i
    	taskkill /pid %%i /F
                   rem 删除pid.txt文件
                   del /a/f/q "%~dp0pid.txt
           )
    
    echo depotupdate:%depotupdate%
    
    rem 判断  update 状态   depotupdate 状态
    if "null" == "%depotupdate%" (
    echo depotupdate:%depotupdate%   不是升级造成的 重启Tomcat
    ::setx /M CATALINA_HOME "%ETC_HOME%ETC_Managentapache-tomcat"
    %ETC_HOME%ETC_Managentapache-tomcatinstartup.bat
    
    )
    if not "null" == "%depotupdate%" (
    echo depotupdate:%depotupdate%   是升级造成tomcat 挂掉 执行升级、
    java -jar %ETC_HOME%ETC_Managentscriptupdate.jar %depotupdate%
    del /a/f/q %ETC_HOME%ETC_Managentapache-tomcatconfupdate.properties
    )
    )
    
    
    
    
    
    
    pause
    

      

    只限阅读,未经允许不得转载,如有问题请@本人,如我方内容侵权请及时告知我方。
  • 相关阅读:
    Mysql(二)
    Mysql(一)
    JS图表插件(柱形图、饼状图、折线图)
    如何让Table中的第一列和第二列的值相乘然后赋值给第三列
    js生成验证码并验证
    IIS配置默认文档
    DropDownList如何添加一个空白的选项
    GridView如何合并同类项
    .NET后台如何获取前台HMTL控件的值
    Json数据报错
  • 原文地址:https://www.cnblogs.com/wzy-525/p/13374687.html
Copyright © 2020-2023  润新知