環境:
一台伺服器上用了portmap做了端口轉發,但是這個程式經常會跪,需要人工去重新開機
解決思路:
通過bat來監控程式端口,不通時候自動重新開機,如果端口可用,則會出來telnet程序,若端口不可用,則不會出現telnet程序。根據程序是否存在來判斷端口是否可用,因為telnet通的話,會直接跳轉視窗,無回顯,是以需要telnet時候啟用新視窗。
方法二
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<code>@</code><code>echo</code> <code>off</code>
<code>title PortMap存活監控!!!</code>
<code>:again</code>
<code>set</code> <code>ip=127.0.0.1</code>
<code>set</code> <code>port=8080</code>
<code>start telnet.exe %ip% %port%</code>
<code>ping</code> <code>-7 127.0.0.1 > null</code>
<code>tasklist|findstr </code><code>/i</code> <code>"telnet.exe"</code> <code>> nul</code>
<code>if</code> <code>ERRORLEVEL 1 (goto err) </code><code>else</code> <code>(goto ok)</code>
<code>:err</code>
<code>tasklist|findstr -i </code><code>"portmap.exe"</code>
<code>if</code> <code>ERRORLEVEL 1 (start </code><code>""</code> <code>"D:\PortMap1.6\PortMap.exe"</code><code>) </code><code>else</code> <code>(taskkill </code><code>/F</code> <code>-IM PortMap.exe & start </code><code>""</code> <code>"D:\PortMap1.6\PortMap.exe"</code><code>)</code>
<code>:ok</code>
<code>taskkill </code><code>/F</code> <code>-IM </code><code>"telnet.exe"</code> <code>>> nul</code>
<code>echo</code> <code>PortMap Services is running %Date:~0,4%-%Date:~5,2%-%Date:~8,2% %Time:~0,2%:%Time:~3,2%</code>
<code>ping</code> <code>-n 300 127.0.0.1 >nul</code>
<code>goto again</code>
<code>netstat</code> <code>-ano|findstr %ip%:%port%|findstr -i ESTABLISHED</code>
本文轉自 justin_peng 51CTO部落格,原文連結:http://blog.51cto.com/ityunwei2017/1924966,如需轉載請自行聯系原作者