Windows

有沒有開源的簡單網路監控應用程序?

  • June 10, 2014

我正在調試我們的一個系統的問題。每個星期天,它都會停止與另一台伺服器通信。如果我們重新啟動兩台伺服器,通信將再次正常執行。

我想知道是否有任何小型應用程序可以監控 TCP 埠可用性和網路連接,可能會記錄任何停機時間。如果可能的話,我也希望它是開源的,但如果有另一種專有的解決方案,我也想听聽。

我會逆勢而上,給你一個腳本化的解決方案。

獲取一份用於 Windows 的netcat並使用 netcat 的路徑修改腳本(或者只是將 nc.exe 轉儲到 %SystemRoot%\system32 目錄中並將該行更改為nc.exe)。此外,修改腳本以將其日誌文件儲存在您想要的任何位置。

@echo off

SET NETCAT=c:\path-to-netcat\nc.exe
SET MONITOR_HOST=server-to-monitor
SET MONITOR_PORT=port-number-to-monitor
SET LOGFILE=C:\whatever.log

rem Use netcat to check for host answering on TCP port xxx
%NETCAT% -z %MONITOR_HOST% %MONITOR_PORT%
if errorlevel 1 goto _host_down

echo %DATE% %TIME% %MONITOR_HOST% answered on TCP port %MONITOR_PORT%>>%LOGFILE%
goto end

:_host_down
echo %DATE% %TIME% %MONITOR_HOST% did not answer on TCP port %MONITOR_PORT%>>%LOGFILE%

rem Do something to remote host here...
rem shutdown -r -t 1 -f -m %MONTIOR_HOST%

:end

你去吧。您可以將其作為“計劃任務”執行。

這一點都不花哨,但它會起作用。如果你想讓它更漂亮,你可以使用日期或時間來更改日誌文件名,這樣你每天、每周等都會得到一個新日誌。你可以刪除舊日誌等。你可以做很多事情像這樣的簡單腳本……嘿嘿……

附錄:

這是更高級的“命令行參數”版本。它登錄到您指定的任何目錄,文件名為“MONTIOR_HOST_YYYY-MM-DD.log”。使用以下語法呼叫:

(filename) monitor_host monitor_port log-file-path
monitor.cmd test-srv01 80 "c:\monitor_logs\long filenames do work here\"

這適用於從多個計劃任務、腳本等呼叫,以監控多個伺服器或多個埠。

@echo off
SET NETCAT=c:\path-to-netcat\nc.exe
SET MONITOR_HOST=%1
SET MONITOR_PORT=%2
SET LOGFILE="%~f3\%1_%DATE:~10,4%-%DATE:~4,2%-%DATE:~7,2%.LOG"

if "%1"=="" goto _syntax
if "%2"=="" goto _syntax
if "%3"=="" goto _syntax

rem Use netcat to check for host answering on TCP port xxx
%NETCAT% -z %MONITOR_HOST% %MONITOR_PORT%
if errorlevel 1 goto _host_down

echo %DATE% %TIME% %MONITOR_HOST% answered on TCP port %MONITOR_PORT%>>%LOGFILE%
goto end

:_host_down
echo %DATE% %TIME% %MONITOR_HOST% did not answer on TCP port %MONITOR_PORT%>>%LOGFILE%

rem Do something to remote host here...
rem shutdown -r -t 1 -f -m %MONTIOR_HOST%
goto end

:_syntax
echo Syntax:
echo.
echo %0 monitor_host monitor_port log-file-path

:end

我寫劇本太有趣了……

引用自:https://serverfault.com/questions/38961