From time to time, youÃƒÂ¢Ã¢â€šÂ¬Ã¢â€žÂ¢ll need to monitor a port to see if thereÃƒÂ¢Ã¢â€šÂ¬Ã¢â€žÂ¢s a problem brewing.Ãƒâ€šÃ‚Â For smaller companies, it can be quite a chore to deploy some sort of commercial or open-source monitoring solution (e.g., NAGIOS-based stuff), when all you want to do is do some quick and dirty monitoring. Example: you just want to check if a port is up or down and be alerted immediately so you can troubleshoot without having to go through a complicated configuration process.
Well, there are a ton of command-line tools that let you do just that.
For our example, we need two tools:
portqry.exe: this is basically a port pinger
Written by Microsoft
bmail.exe: this is a simple command line tool to send an email using a batch file
Written by Craig Peacock from Beyond Logic
So, how does this work?
All you need is a simple batch file that you would call from Windows Task Scheduler, e.g. every 5 or 10 minutes:
<ip> = IP or Name of the machine you want to check
<port> = port you want to check
The default timeout is 30 seconds.
portqry -n <ip> -e <port> -p TCP -q
if %ERRORLEVEL% == 0 goto allok
bmail -s mail.yourmailrelay.com -p 25 -t email@example.com -f firstname.lastname@example.org -h -a ÃƒÂ¢Ã¢â€šÂ¬Ã…â€œport is down or saturatedÃƒÂ¢Ã¢â€šÂ¬Ã‚Â
And there you go!
Every time the batch file runs, it checks to see if it can reach the port you specify: if it canÃƒÂ¢Ã¢â€šÂ¬Ã¢â€žÂ¢t, itÃƒÂ¢Ã¢â€šÂ¬Ã¢â€žÂ¢ll send an email through the relay server of your choice and send an alert to your cell phone.