BATch-Dateien - andere Kommandozeilentools

Auswahl weiterer Kommandozeilentools, die nicht zum Umfang von MS Windows gehören.

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.

WIP:

Beispiele: Netcat - Check von Ports auf verschiedenen Servern

Um einen TCP Port auf einem Host zu prüfen, ist die

allg. 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.txt
an.

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