Windows
有沒有開源的簡單網路監控應用程序?
我正在調試我們的一個系統的問題。每個星期天,它都會停止與另一台伺服器通信。如果我們重新啟動兩台伺服器,通信將再次正常執行。
我想知道是否有任何小型應用程序可以監控 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
我寫劇本太有趣了……