Een one-liner in BASH is altijd leuk. Deze one-liner heb ik zojuist gemaakt om smtp-verbindingen vanaf een nieuwe server te controleren:
for HOST in `cat transport |grep -v “^#” |grep “.”|cut -f 2 -d “[” | cut -f 1 -d “]”| sort -u`; do echo “$HOST 25”; exec 3<> /dev/tcp/$HOST/25; read -t 5 0<&3 && echo $REPLY || echo “Problemen met $HOST”; exec 3<&-; done > connections.txt
Deze nieuwe server moet mail gaan afleveren op de mailservers van klanten. Voordat ik mail op de server binnen laat komen moet ik wel zeker weten dat de mail door de firewall kan bij de klant. Hiervoor wordt het transport-bestand, welke ook gebruikt wordt door de mailserver, ingelezen en worden de diverse mailservers eruit gefilterd. Daarna volgt een controle van poort 25 met een melding als er een probleem is of, bij geen problemen, het antwoord van de externe mailserver.
Gebruikte bronnen: Bash netwerk programmeren en Bash socket programmeren.
Related Articles
No user responded in this post