{"id":3851,"date":"2013-10-13T14:26:27","date_gmt":"2013-10-13T12:26:27","guid":{"rendered":"https:\/\/www.kolja-engelmann.de\/blog\/?p=3851"},"modified":"2015-07-24T16:01:25","modified_gmt":"2015-07-24T14:01:25","slug":"aktuellen-datendurchsatz-eines-linux-interface-periodisch-via-udp-versenden","status":"publish","type":"post","link":"https:\/\/www.kolja-engelmann.de\/blog\/2013\/10\/aktuellen-datendurchsatz-eines-linux-interface-periodisch-via-udp-versenden\/","title":{"rendered":"Aktuellen Datendurchsatz eines Linux Interface periodisch via UDP versenden"},"content":{"rendered":"<p>Zugegeben, auch wenn ich Linux nicht sonderlich mag, manchmal sind L\u00f6sungen damit extrem einfach zu erreichen. In diesem Fall musste ich mir rasch (also wie immer) den aktuellen Datendurchsatz eines Linux Interface zu einem anderen Rechner senden lassen. Das musste weder supergenau sein noch besonders gesichert \u00fcbertragen werden. Also entschied ich mich f\u00fcr ein Shellskript, dass mir jede Sekunde anhand der Interfacestatistiken den aktuellen Wert der gesendeten oder empfangenen Bytes ausliest, daraus die Bytes pro Sekunde errechnet und das Ganze per UDP zusendet. Herrlich, dass auch mal was unkompliziert ist.<\/p>\n<pre class=\"lang:sh decode:true \">#!\/bin\/bash\r\n\r\nif [ -z \"$1\" ]; then        \r\n        echo usage: $0 network-interface, IP, Port [, TX or RX [,Divider]]\r\n        echo\r\n        exit\r\nfi\r\n \r\necho \"Running...Press &lt;CTRL-C&gt; to close\"\r\n \r\nwhile true\r\ndo\r\n\tRX1=`cat \/sys\/class\/net\/$1\/statistics\/rx_bytes`\r\n\tTX1=`cat \/sys\/class\/net\/$1\/statistics\/tx_bytes`\r\n\tsleep 1\r\n\tRX2=`cat \/sys\/class\/net\/$1\/statistics\/rx_bytes`\r\n\tTX2=`cat \/sys\/class\/net\/$1\/statistics\/tx_bytes`\r\n\tTXBPS=`expr $TX2 - $TX1`\r\n\tRXBPS=`expr $RX2 - $RX1`\r\n\tTXKBPS=`expr $TXBPS \/ ${5:-1024}`\r\n\tRXKBPS=`expr $RXBPS \/ ${5:-1024}`\r\n\r\n\tif [ \"$4\" == \"tx\" ]; then\r\n\t\techo -n \"$TXKBPS\"| nc -u -q1 $2 $3\r\n\telse\r\n\t\techo -n \"$RXKBPS\"| nc -u -q1 $2 $3\r\n\tfi       \r\ndone<\/pre>\n<p>Getestet habe ich das Ganze lediglich unter Mint und Ubuntu, keine Ahnung ob andere Linux Derivate die Interface Statistiken ebenso \u00a0unter <code>\/sys\/class\/net\/<\/code> bereitstellen.<\/p>","protected":false},"excerpt":{"rendered":"<p>Zugegeben, auch wenn ich Linux nicht sonderlich mag, manchmal sind L\u00f6sungen damit extrem einfach zu erreichen. In diesem Fall musste ich mir rasch (also wie immer) den aktuellen Datendurchsatz eines Linux Interface zu einem anderen&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":3692,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[38],"tags":[116,115],"class_list":["post-3851","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codeschnippsel","tag-bash","tag-linux"],"jetpack_featured_media_url":"https:\/\/www.kolja-engelmann.de\/blog\/wp-content\/uploads\/2013\/05\/terminal-shell-cmd-icon.png","jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/posts\/3851","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/comments?post=3851"}],"version-history":[{"count":0,"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/posts\/3851\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/media\/3692"}],"wp:attachment":[{"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/media?parent=3851"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/categories?post=3851"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/tags?post=3851"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}