{"id":25,"date":"2010-11-16T15:30:48","date_gmt":"2010-11-16T14:30:48","guid":{"rendered":"http:\/\/www.vander-salm.nl\/site\/?p=25"},"modified":"2024-02-23T11:34:21","modified_gmt":"2024-02-23T10:34:21","slug":"bash-one-liners","status":"publish","type":"post","link":"\/site\/2010\/11\/bash-one-liners\/","title":{"rendered":"BASH one-liners"},"content":{"rendered":"<p>Een one-liner in BASH is altijd leuk. Deze one-liner heb ik zojuist gemaakt om smtp-verbindingen vanaf een nieuwe server te controleren:<\/p>\n<p><strong>for HOST in `cat transport |grep -v &#8220;^#&#8221; |grep &#8220;.&#8221;|cut -f 2 -d &#8220;[&#8221; | cut -f 1 -d &#8220;]&#8221;| sort -u`; do echo &#8220;$HOST 25&#8221;; exec 3&lt;&gt; \/dev\/tcp\/$HOST\/25; read -t 5 0&lt;&amp;3 &amp;&amp; echo $REPLY || echo &#8220;Problemen met $HOST&#8221;; exec 3&lt;&amp;-; done &gt; connections.txt<\/strong><\/p>\n<p>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.<\/p>\n<p>Gebruikte bronnen: <a title=\"Netwerkprogrammeren in bash\" href=\"http:\/\/shudder.daemonette.org\/source\/BashNP-Guide.txt\" target=\"_blank\" rel=\"noopener\">Bash netwerk programmeren<\/a> en <a title=\"Sockets programmeren in Bash\" href=\"http:\/\/thesmithfam.org\/blog\/2006\/05\/23\/bash-socket-programming-with-devtcp-2\/\" target=\"_blank\" rel=\"noopener\">Bash socket programmeren<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>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 &#8220;^#&#8221; |grep &#8220;.&#8221;|cut -f 2 -d &#8220;[&#8221; | cut -f 1 -d &#8220;]&#8221;| sort -u`; do echo &#8220;$HOST 25&#8221;; exec 3&lt;&gt; \/dev\/tcp\/$HOST\/25; read -t 5 0&lt;&amp;3 &amp;&amp; [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,5,6],"tags":[],"_links":{"self":[{"href":"\/site\/wp-json\/wp\/v2\/posts\/25"}],"collection":[{"href":"\/site\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"\/site\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"\/site\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"\/site\/wp-json\/wp\/v2\/comments?post=25"}],"version-history":[{"count":6,"href":"\/site\/wp-json\/wp\/v2\/posts\/25\/revisions"}],"predecessor-version":[{"id":137,"href":"\/site\/wp-json\/wp\/v2\/posts\/25\/revisions\/137"}],"wp:attachment":[{"href":"\/site\/wp-json\/wp\/v2\/media?parent=25"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"\/site\/wp-json\/wp\/v2\/categories?post=25"},{"taxonomy":"post_tag","embeddable":true,"href":"\/site\/wp-json\/wp\/v2\/tags?post=25"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}