服务器自动重启,服务器宕机重启,自动重启weblogic,批处理自动重启服务器


服务器自动重启,服务器宕机重启,自动重启weblogic,批处理自动重启服务器
2010年07月21日
     服务器自动重启,服务器宕机重启,自动重启weblogic,批处理自动重启服务器 收藏
  直接帖原码 @echo off :label rem 下面判断服务器是否宕机 rem ************************************************** **************** rem 这里是检测的端口号,* rem * netstat -an|find "80"|find "LISTENING" rem * rem * rem ************************************************** **************** rem 如果errorlevel为1,服务器宕机关闭服务再启动 if errorlevel 1 goto stop rem 如果errorlevel为0,服务器正常进入延时程序。 if errorlevel 0 goto dely :dely rem VB延迟脚本5分钟 echo 延时程序 echo wscript.sleep 1000*60*5>sleep.vbs start /wait sleep.vbs goto label :stop rem 调用停止服务代码 rem CALL stopweblogic.cmd rem ************************************************** **************** rem 查找进程号根据窗口标题,并把相关信息输入至pid.txt文件中 * rem 这里需要根据不同的窗口标题进行更改 * tasklist /nh /fo csv /fi "imagename eq cmd.exe" /fi "windowtitle eq C:\WINDOWS\system32\cmd.exe - .\startManagedWebLogic ProxyServer http://168.9.120.61:7001" >tpid.txt rem * rem * rem ************************************************** **************** rem 从文件中查找PID值 rem for /f "skip=1 tokens=2 delims=," %%i in (tpid.txt) do ( for /f "tokens=2 delims=," %%i in (tpid.txt) do ( echo %%~i set pid=%%~i) rem echo pid : rem echo %pid% rem 杀掉进程Pid=%pid% if defined pid (taskkill /f /t /pid %pid%) else (echo 服务窗口已经关闭) rem 调用启动服务代码 rem ************************************************** **************** rem 这里为启动代理的批处理 * rem * call startProxyServer.cmd rem * rem * rem ************************************************** **************** rem 跳转至dely标签循环 goto dely rem 删除VB脚本 del /f /s /q sleep.vbs  tasklist /nh /fo csv /fi "imagename eq cmd.exe" /fi "windowtitle eq C:\WINDOWS\system32\cmd.exe - .\startManagedWebLogic  ProxyServer http://168.9.120.61:7001" >tpid.txt解释一下这句。
  这是一个找进程号的批处理,如果宕机了,我们先把服务关掉再重启,这里有一个问题,windowtitle 后面的
  是窗口标题,因为进程名都是cmd.exe.会有多个cmd.exe不好判断,只好判断cmd.exe的标题了,
  
  看上面是两个cmd.exe;weblogic的标题名跟下面一个不一样,我们只要把这个标题加入上面的代码,就能找到我们要杀掉的服务了。
  上面的结果是先把他输出到tpid.txt文件中,看看输出的格式吧
  "cmd.exe","2604","RDP-Tcp#1","0","3,220 K"
  前面第一个是进程名,weblogic启动是一个cmd.exe,第二个就是进程号,我们把他弄出来就可以用taskkill 来杀了,
  for /f "tokens=2 delims=," %%i in (tpid.txt) do (
  echo %%~i
  set pid=%%~i)这一句就是读取刚才的文件,把进程号取出来给变量pid;

猜你喜欢

转载自ipwj74ipwj.iteye.com/blog/1363200