Liste weiterer Kommandozeilentools
In dieser Rubrik werden verschiedene Kommandozeilentools aufgelistet, die sich ebenso in Batch-Dateien verwenden lassen. Es sind zumeist Portierungen bekannter Unix-Kommandozeilentools oder aber Freeware für Windows.
Alle genannten Programme gehören nicht(!) zum Umfang von MS Windows.
Beispiele: Netcat - Check von Ports auf verschiedenen Servern
Um einen TCP Port auf einem Host zu prüfen, ist dieallg. Syntax:
nc -zv %host% %port%
Den Parameter -z verwendet man für den Portscan; -v für eine sinnvolle Ausgabe.
Ein Beispiel:
# nc -zv www.axel-hahn.de 80 www.axel-hahn.de [81.169.145.89] 80 (http) open
Ich will aber mehrere Server auf versch. offene Ports testen:
Mit einer kleinen Config und einem Loop darüber mit Hilfe einer FOR-Anweisung, kann man sich einen schnellen Server-Check zusammenbauen. Klein deshalb, weil der Check sequentiell erfolgt und damit allenfalls kleinste Monitoring Aufgaben übernehmen kann.
Die Config ist wie folgt aufgebaut: Angegeben werden Hostname, Portnummer und ein Beschreibungstext. Trennzeichen ist ":". Am Zeilenanfang geschriebene "#" sind Kommentare.
Dateiname ist tests.txt - oder man passt es im darunter folgenden Skript in der Zeile
set cfg=tests.txtan.
Config:
# ---------------------------------------------------------------------- # Konfiguration fuer den Portchecker # Syntax # hostname:port:label # ---------------------------------------------------------------------- ftp.example.com:21:FTP-Server erreichbar ssh.example.com:22:SSH erreichbar telnet.example.com:25:Telnet-Dienst erreichbar webserver01.example.com:80:Webseite ist erreichbar ssl.example.com:443:SSL-Webseite ist mit https erreichbar mysql.example.com:3306:Mysql-Server ist erreichbar # ----------------------------------------------------------------------
Und hier ein Skript mit Loop über diese Config und einem Portcheck je Zeile. Als kleines Gimmick erfolgt die Ausgabe in (unvollständigem) HTML und farblicher Hervorhebung.
@echo off rem ====================================================================== :: :: PORTCHECKER MIT NETCAT :: rem ---------------------------------------------------------------------- :: 2010-02-17 Axel Hahn rem ====================================================================== set cfg=tests.txt set tmp=%temp%/tests.tmp set htm=%temp%/tests.html rem --- html vorbereiten echo.>%htm% echo ^<style^> >>%htm% echo .error{background:#fcc} >>%htm% echo .ok{background:#4c4} >>%htm% echo ^</style^> >>%htm% echo ^<h1^>Port-Checker - >>%htm% date /t >>%htm% time /t >>%htm% echo ^</h1^> >>%htm% for /F "tokens=1,2,* delims=:" %%a in ('findstr /v "^#" %cfg%') do call :porttest %%a %%b "%%c" start %htm% pause && exit :porttest set host=%1 set port=%2 set label=%~3 nc -v -z %host% %port% 2>&1 | findstr /v "11004" | findstr "open$" 2>&1 >%tmp% && goto OK echo FEHLER: %host%:%port% - %label% echo ^<span class=error^>FEHLER: %host%:%port% - %label% >>%htm% goto log :ok echo OK: %host%:%port% - %label% echo ^<span class=ok^>OK: %host%:%port% - %label% >>%htm% goto log :log echo ^</span^>^<br^> >>%htm% goto eof :eof