[{"content":"ANGABEN GEMÄSS § 5 TMG Klaus-Dieter Scheffer Viertelbachstraße 15 85652 Pliening\nVertreten durch: Klaus-Dieter Scheffer\nKontakt: E-Mail: impressum@scheffer-online.de\nVerantwortlich für den Inhalt nach § 55 Abs. 2 RStV: Klaus-Dieter Scheffer Viertelbachstraße 15 85652 Pliening\nHAFTUNG FÜR INHALTE Die Inhalte unserer Seiten wurden mit größter Sorgfalt erstellt. Für die Richtigkeit, Vollständigkeit und Aktualität der Inhalte können wir jedoch keine Gewähr übernehmen. Als Diensteanbieter sind wir gemäß § 7 Abs.1 TMG für eigene Inhalte auf diesen Seiten nach den allgemeinen Gesetzen verantwortlich. Nach §§ 8 bis 10 TMG sind wir als Diensteanbieter jedoch nicht verpflichtet, übermittelte oder gespeicherte fremde Informationen zu überwachen oder nach Umständen zu forschen, die auf eine rechtswidrige Tätigkeit hinweisen. Verpflichtungen zur Entfernung oder Sperrung der Nutzung von Informationen nach den allgemeinen Gesetzen bleiben hiervon unberührt. Eine diesbezügliche Haftung ist jedoch erst ab dem Zeitpunkt der Kenntnis einer konkreten Rechtsverletzung möglich. Bei Bekanntwerden von entsprechenden Rechtsverletzungen werden wir diese Inhalte umgehend entfernen.\nHAFTUNG FÜR LINKS Unser Angebot enthält Links zu externen Webseiten Dritter, auf deren Inhalte wir keinen Einfluss haben. Deshalb können wir für diese fremden Inhalte auch keine Gewähr übernehmen. Für die Inhalte der verlinkten Seiten ist stets der jeweilige Anbieter oder Betreiber der Seiten verantwortlich. Die verlinkten Seiten wurden zum Zeitpunkt der Verlinkung auf mögliche Rechtsverstöße überprüft. Rechtswidrige Inhalte waren zum Zeitpunkt der Verlinkung nicht erkennbar. Eine permanente inhaltliche Kontrolle der verlinkten Seiten ist jedoch ohne konkrete Anhaltspunkte einer Rechtsverletzung nicht zumutbar. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Links umgehend entfernen.\nURHEBERRECHT Die durch die Seitenbetreiber erstellten Inhalte und Werke auf diesen Seiten unterliegen dem deutschen Urheberrecht. Die Vervielfältigung, Bearbeitung, Verbreitung und jede Art der Verwertung außerhalb der Grenzen des Urheberrechtes bedürfen der schriftlichen Zustimmung des jeweiligen Autors bzw. Erstellers. Downloads und Kopien dieser Seite sind nur für den privaten, nicht kommerziellen Gebrauch gestattet. Soweit die Inhalte auf dieser Seite nicht vom Betreiber erstellt wurden, werden die Urheberrechte Dritter beachtet. Insbesondere werden Inhalte Dritter als solche gekennzeichnet. Sollten Sie trotzdem auf eine Urheberrechtsverletzung aufmerksam werden, bitten wir um einen entsprechenden Hinweis. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Inhalte umgehend entfernen.\nDATENNUTZUNG Der Nutzung von im Rahmen der Impressumspflicht veröffentlichten Kontaktdaten durch Dritte zur Übersendung von nicht ausdrücklich angeforderter Werbung und Informationsmaterialien wird hiermit ausdrücklich widersprochen. Die Betreiber der Seiten behalten sich ausdrücklich rechtliche Schritte im Falle der unverlangten Zusendung von Werbeinformationen, etwa durch Spam-Mails, vor.\n","permalink":"https://www.scheffer-online.de/impressum/","summary":"\u003ch3 id=\"angaben-gemäss--5-tmg\"\u003e\u003cstrong\u003eANGABEN GEMÄSS § 5 TMG\u003c/strong\u003e\u003c/h3\u003e\n\u003cp\u003eKlaus-Dieter Scheffer\nViertelbachstraße 15\n85652 Pliening\u003c/p\u003e\n\u003cp\u003eVertreten durch:\nKlaus-Dieter Scheffer\u003c/p\u003e\n\u003cp\u003eKontakt:\nE-Mail: \u003ca href=\"mailto:impressum@scheffer-online.de\"\u003eimpressum@scheffer-online.de\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eVerantwortlich für den Inhalt nach § 55 Abs. 2 RStV:\nKlaus-Dieter Scheffer\nViertelbachstraße 15\n85652 Pliening\u003c/p\u003e\n\u003ch3 id=\"haftung-für-inhalte\"\u003eHAFTUNG FÜR INHALTE\u003c/h3\u003e\n\u003cp\u003eDie Inhalte unserer Seiten wurden mit größter Sorgfalt erstellt. Für die Richtigkeit, Vollständigkeit und Aktualität der Inhalte können wir jedoch keine Gewähr übernehmen. Als Diensteanbieter sind wir gemäß § 7 Abs.1 TMG für eigene Inhalte auf diesen Seiten nach den allgemeinen Gesetzen verantwortlich. Nach §§ 8 bis 10 TMG sind wir als Diensteanbieter jedoch nicht verpflichtet, übermittelte oder gespeicherte fremde Informationen zu überwachen oder nach Umständen zu forschen, die auf eine rechtswidrige Tätigkeit hinweisen. Verpflichtungen zur Entfernung oder Sperrung der Nutzung von Informationen nach den allgemeinen Gesetzen bleiben hiervon unberührt. Eine diesbezügliche Haftung ist jedoch erst ab dem Zeitpunkt der Kenntnis einer konkreten Rechtsverletzung möglich. Bei Bekanntwerden von entsprechenden Rechtsverletzungen werden wir diese Inhalte umgehend entfernen.\u003c/p\u003e","title":"Impressum"},{"content":"Kleines Shell Script als Erweiterung zum Standard Linux Ping Tool. Die Genauigkeit habe ich nicht getestet, es soll nur zur Einschätzung von Packetloss und Jitter dienen.\neping \u0026lt;host\u0026gt; [ping Options] Kleinster Intervall liegt bei etwa -i 0.05 = 50ms, ggf. ist durch Optimierung des Scrips noch etwas mehr möglich.\nOhne [ping Options] ist der Default Intervall 200ms (-i 0.2)\nBeispiel:\n~/pp # ./eping 10.0.0.1 -i 1 - req=6 last=6 c=6 l=0 sv=0 rtt(cur|avg|min|max)=14.3 13.8 13.4 14.3 jitter(c|min|max)=720 600 720 us Bash Script\n#!/bin/bash LANG=C IP=$1 INTERVALL=0.2 PINGOPT=\u0026#34;-i $INTERVALL\u0026#34; shift [ \u0026#34;_$1\u0026#34; == \u0026#34;_\u0026#34; ] || PINGOPT=\u0026#34;$@\u0026#34; let count=0 let last_req=0 let loss=0 let run=1 rtt=0 lastrtt=0 rttmax=0 rttavg=0 rttmin=10000000 let jitterdiff=0 let jitter=0 let jittermin=10000 let jittermax=0 let seqvio=0 trap \u0026#34;run=0\u0026#34; INT [ -z $TMPDIR ] \u0026amp;\u0026amp; TMPDIR=/tmp pipe1=$TMPDIR/$(basename $0).pipe rm -f $pipe1 if [[ ! -p $pipe1 ]]; then mkfifo $pipe1 fi wd_pp() { while [ -p $2 ]; do eval $1 # [ $? -eq 0 ] \u0026amp;\u0026amp; break sleep 0.2 done } wd_pp \u0026#34;ping $PINGOPT $IP \u0026gt;$pipe1\u0026#34; $pipe1 \u0026amp; x=\u0026#39;|/-\\\u0026#39; starttime=$(date \u0026#39;+%Y%m%d %H:%M:%S\u0026#39;) while [ $run -eq 1 ]; do if read line \u0026lt;$pipe1; then t=$(date +%Y%m%d_%H:%M:%S.%N) if [[ \u0026#34;$line\u0026#34; == \u0026#39;quit\u0026#39; ]]; then break fi # echo $line | grep -v \u0026#34;PING\u0026#34; | cut -d\u0026#39;:\u0026#39; -f2 | sed \u0026#39;s/ms//g\u0026#39; | sed \u0026#39;s/ /;/g\u0026#39; | sed \u0026#39;s/^;//g\u0026#39; | sed \u0026#39;s/;$//g\u0026#39; | sed \u0026#39;s/icmp_seq/icmp_req/g\u0026#39; eval $(echo $line | grep -v \u0026#34;PING\u0026#34; | cut -d\u0026#39;:\u0026#39; -f2 | sed \u0026#39;s/ms//g\u0026#39; | sed \u0026#39;s/ /;/g\u0026#39; | sed \u0026#39;s/^;//g\u0026#39; | sed \u0026#39;s/;$//g\u0026#39; | sed \u0026#39;s/icmp_seq/icmp_req/g\u0026#39; ) # echo \u0026#34;icmp_req=$icmp_req\u0026#34; [ \u0026#34;$icmp_req\u0026#34; == \u0026#34;\u0026#34; ] \u0026amp;\u0026amp; continue [ $run -eq 0 ] \u0026amp;\u0026amp; continue rtt=$(echo \u0026#34;$rtt + $time * 1000\u0026#34; | bc -l) utime=$(echo \u0026#34;$time * 1000\u0026#34; | bc | cut -d\u0026#39;.\u0026#39; -f1) if [ $count -gt 0 ]; then if [ $icmp_req -lt $(( last_req + 1 )) ]; then let seqvio=seqvio+1 elif [ ! $icmp_req -eq $(( last_req + 1 )) ]; then let loss=loss+1 fi [ $utime -gt $lastrtt ] \u0026amp;\u0026amp; let jitterdiff=$jitterdiff+$utime-$lastrtt || let jitterdiff=$jitterdiff+$lastrtt-$utime jitter=$(echo \u0026#34;$jitterdiff/$count\u0026#34; | bc -l | cut -d\u0026#39;.\u0026#39; -f1) fi let last_req=$icmp_req lastrtt=$utime let count=count+1 rttavg=$(echo \u0026#34;$rtt / 1000 / $count\u0026#34; | bc -l | cut -b1-4) rttime=$(printf \u0026#34;%.0f\u0026#34; $(echo \u0026#34;$time * 1000\u0026#34; | bc -l)) [ $rttime -gt $rttmax ] \u0026amp;\u0026amp; rttmax=$rttime [ $rttime -lt $rttmin ] \u0026amp;\u0026amp; rttmin=$rttime [ $jitter -gt $jittermax ] \u0026amp;\u0026amp; jittermax=$jitter [ $jitter -gt 0 ] \u0026amp;\u0026amp; [ $jitter -lt $jittermin ] \u0026amp;\u0026amp; jittermin=$jitter y=$(($count%4)); echo -ne \u0026#34;${x:y:1} req=$icmp_req last=$last_req c=$count l=$loss sv=$seqvio rtt(c|a|min|max)=$time $rttavg $(echo \u0026#34;$rttmin/1000\u0026#34; | bc -l | cut -b1-4) $(echo \u0026#34;$rttmax/1000\u0026#34; | bc -l | cut -b1-4) \u0026#34; echo -ne \u0026#34;jitter(c|min|max)=$jitter $jittermin $jittermax us \\r\u0026#34; fi read -n 1 -t 0.005 -s k case $k in q|Q) run=0;; c|C) jittermin=10000; jittermax=0; rttmin=10000000; rttmax=0; loss=0; seqvio=0;; esac done endtime=$(date \u0026#39;+%Y%m%d %H:%M:%S\u0026#39;) rm -f $pipe1 echo -ne \u0026#34;\\r \\n\u0026#34; echo \u0026#34;Test start: $starttime\u0026#34; echo \u0026#34;test end: $endtime\u0026#34; echo \u0026#34;Ping Options \u0026#39;$PINGOPT\u0026#39;\u0026#34; echo \u0026#34;Loss $loss/$count = $(echo \u0026#34;$loss * 100 /$count\u0026#34; | bc -l | cut -b1-4)%\u0026#34; echo \u0026#34;RTT avg $rttavg\u0026#34; echo \u0026#34;RTT min $(echo \u0026#34;$rttmin/1000\u0026#34; | bc -l | cut -b1-4)\u0026#34; echo \u0026#34;RTT max $(echo \u0026#34;$rttmax/1000\u0026#34; | bc -l | cut -b1-4)\u0026#34; echo \u0026#34;Jitter $jitter us (10^-6)\u0026#34; echo \u0026#34;Jitter min $jittermin us (10^-6)\u0026#34; echo \u0026#34;Jitter max $jittermax us (10^-6)\u0026#34; ","permalink":"https://www.scheffer-online.de/posts/bash-ping-erweiterung/","summary":"\u003cp\u003eKleines Shell Script als Erweiterung zum Standard Linux Ping Tool. Die Genauigkeit habe ich nicht getestet, es soll nur zur Einschätzung von Packetloss und Jitter dienen.\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-fallback\" data-lang=\"fallback\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eeping \u0026lt;host\u0026gt; [ping Options]\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eKleinster Intervall liegt bei etwa \u003ccode\u003e-i 0.05\u003c/code\u003e = 50ms, ggf. ist durch Optimierung des Scrips noch etwas mehr möglich.\u003c/p\u003e\n\u003cp\u003eOhne \u003ccode\u003e[ping Options]\u003c/code\u003e ist der Default Intervall 200ms (\u003ccode\u003e-i 0.2\u003c/code\u003e)\u003c/p\u003e\n\u003cp\u003eBeispiel:\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-fallback\" data-lang=\"fallback\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e~/pp # ./eping 10.0.0.1 -i 1\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e- req=6 last=6 c=6 l=0 sv=0 rtt(cur|avg|min|max)=14.3 13.8 13.4 14.3 jitter(c|min|max)=720 600 720 us\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eBash Script\u003c/p\u003e","title":"BASH Ping Erweiterung"},{"content":"Wer wir sind Die Adresse unserer Website ist: https://www.scheffer-online.de.\nWelche personenbezogenen Daten wir sammeln und warum wir sie sammeln Kommentare Wenn Besucher Kommentare auf der Website schreiben, sammeln wir die Daten, die im Kommentar-Formular angezeigt werden, außerdem die IP-Adresse des Besuchers und den User-Agent-String (damit wird der Browser identifiziert), um die Erkennung von Spam zu unterstützen.\nAus deiner E-Mail-Adresse kann eine anonymisierte Zeichenfolge erstellt (auch Hash genannt) und dem Gravatar-Dienst übergeben werden, um zu prüfen, ob du diesen benutzt. Die Datenschutzerklärung des Gravatar-Dienstes findest du hier: https://automattic.com/privacy/. Nachdem dein Kommentar freigegeben wurde, ist dein Profilbild öffentlich im Kontext deines Kommentars sichtbar.\nMedien Wenn du ein registrierter Benutzer bist und Fotos auf diese Website lädst, solltest du vermeiden, Fotos mit einem EXIF-GPS-Standort hochzuladen. Besucher dieser Website könnten Fotos, die auf dieser Website gespeichert sind, herunterladen und deren Standort-Informationen extrahieren.\nKontaktformulare Cookies Wenn du einen Kommentar auf unserer Website schreibst, kann das eine Einwilligung sein, deinen Namen, E-Mail-Adresse und Website in Cookies zu speichern. Dies ist eine Komfortfunktion, damit du nicht, wenn du einen weiteren Kommentar schreibst, all diese Daten erneut eingeben musst. Diese Cookies werden ein Jahr lang gespeichert.\nFalls du ein Konto hast und dich auf dieser Website anmeldest, werden wir ein temporäres Cookie setzen, um festzustellen, ob dein Browser Cookies akzeptiert. Dieses Cookie enthält keine personenbezogenen Daten und wird verworfen, wenn du deinen Browser schließt.\nWenn du dich anmeldest, werden wir einige Cookies einrichten, um deine Anmeldeinformationen und Anzeigeoptionen zu speichern. Anmelde-Cookies verfallen nach zwei Tagen und Cookies für die Anzeigeoptionen nach einem Jahr. Falls du bei der Anmeldung „Angemeldet bleiben“ auswählst, wird deine Anmeldung zwei Wochen lang aufrechterhalten. Mit der Abmeldung aus deinem Konto werden die Anmelde-Cookies gelöscht.\nWenn du einen Artikel bearbeitest oder veröffentlichst, wird ein zusätzlicher Cookie in deinem Browser gespeichert. Dieser Cookie enthält keine personenbezogenen Daten und verweist nur auf die Beitrags-ID des Artikels, den du gerade bearbeitet hast. Der Cookie verfällt nach einem Tag.\nEingebettete Inhalte von anderen Websites Beiträge auf dieser Website können eingebettete Inhalte beinhalten (z. B. Videos, Bilder, Beiträge etc.). Eingebettete Inhalte von anderen Websites verhalten sich exakt so, als ob der Besucher die andere Website besucht hätte.\nDiese Websites können Daten über dich sammeln, Cookies benutzen, zusätzliche Tracking-Dienste von Dritten einbetten und deine Interaktion mit diesem eingebetteten Inhalt aufzeichnen, inklusive deiner Interaktion mit dem eingebetteten Inhalt, falls du ein Konto hast und auf dieser Website angemeldet bist.\nAnalysedienste Werden auf dieser Webseite nicht verwendet.\nMit wem wir deine Daten teilen Ich teile keinerlei personenbezogene Daten mit Dritten.\nWie lange wir deine Daten speichern Wenn du einen Kommentar schreibst, wird dieser inklusive Metadaten zeitlich unbegrenzt gespeichert. Auf diese Art können wir Folgekommentare automatisch erkennen und freigeben, anstelle sie in einer Moderations-Warteschlange festzuhalten.\nFür Benutzer, die sich auf unserer Website registrieren, speichern wir zusätzlich die persönlichen Informationen, die sie in ihren Benutzerprofilen angeben. Alle Benutzer können jederzeit ihre persönlichen Informationen einsehen, verändern oder löschen (der Benutzername kann nicht verändert werden). Administratoren der Website können diese Informationen ebenfalls einsehen und verändern.\nWelche Rechte du an deinen Daten hast Wenn du ein Konto auf dieser Website besitzt oder Kommentare geschrieben hast, kannst du einen Export deiner personenbezogenen Daten bei uns anfordern, inklusive aller Daten, die du uns mitgeteilt hast. Darüber hinaus kannst du die Löschung aller personenbezogenen Daten, die wir von dir gespeichert haben, anfordern. Dies umfasst nicht die Daten, die wir aufgrund administrativer, rechtlicher oder sicherheitsrelevanter Notwendigkeiten aufbewahren müssen.\nWohin wir deine Daten senden Besucher-Kommentare könnten von einem automatisierten Dienst zur Spam-Erkennung untersucht werden.\nDeine Kontakt-Informationen Verantwortlich im Sinne des § 5 TMG Klaus-Dieter Scheffer Viertelbachstraße 15 85652 Pliening E-Mail: info [ett] scheffer-online.de\n","permalink":"https://www.scheffer-online.de/datenschutzerklaerung/","summary":"\u003ch2 id=\"wer-wir-sind\"\u003eWer wir sind\u003c/h2\u003e\n\u003cp\u003eDie Adresse unserer Website ist: \u003ca href=\"https://www.scheffer-online.de\"\u003ehttps://www.scheffer-online.de\u003c/a\u003e.\u003c/p\u003e\n\u003ch2 id=\"welche-personenbezogenen-daten-wir-sammeln-und-warum-wir-sie-sammeln\"\u003eWelche personenbezogenen Daten wir sammeln und warum wir sie sammeln\u003c/h2\u003e\n\u003ch3 id=\"kommentare\"\u003eKommentare\u003c/h3\u003e\n\u003cp\u003eWenn Besucher Kommentare auf der Website schreiben, sammeln wir die Daten, die im Kommentar-Formular angezeigt werden, außerdem die IP-Adresse des Besuchers und den User-Agent-String (damit wird der Browser identifiziert), um die Erkennung von Spam zu unterstützen.\u003c/p\u003e\n\u003cp\u003eAus deiner E-Mail-Adresse kann eine anonymisierte Zeichenfolge erstellt (auch Hash genannt) und dem Gravatar-Dienst übergeben werden, um zu prüfen, ob du diesen benutzt. Die Datenschutzerklärung des Gravatar-Dienstes findest du hier: \u003ca href=\"https://automattic.com/privacy/\"\u003ehttps://automattic.com/privacy/\u003c/a\u003e. Nachdem dein Kommentar freigegeben wurde, ist dein Profilbild öffentlich im Kontext deines Kommentars sichtbar.\u003c/p\u003e","title":"Datenschutzerklärung"},{"content":"Manchmal kann es sinnvoll sein, einen im Vordergrund gestarteten Prozess anzuhalten, weil dieser so viel CPU oder IO nutzt weshalb ein andere Prozess, auf den man gerade wartet, nicht fertig wird. Auf Rechnern, die entweder wenig CPU Power haben und/oder ein langsames Speichermedium besitzen, kann das schonaml vorkommen. Aber auch auf Power Servern kann das Prozess anhalten mal nützlich sein. Um den gestarteten Prozess nicht töten zu müssen, wäre es also sinnvoll, diesen anzuhalten und später wieder weiterlaufen zu lassen.\nIn der Konsole einfach den Problem Prozess mit Strg+Z stoppen ist die Lösung:\nroot@server /mnt/backup/images # mv /home/public/* ./ ^Z [1]+ Angehalten mv /home/public/* ./ Um dann den Prozess wieder weiter auszuführen, kann der angehaltene Prozess wieder in den Vordergrund geholt werden. Dazu ist die Zahl in den eckigen Klammern, die nach dem Strg+Z angezeigt wird wichtig, in diesem Beispiel die 1:\nfg 1 Normalerweise wird man nur einen Prozess anhalten um ihn dann später weiter auszuführen. Sollte man mal mehrere Prozesse gestartet und angehalten haben, dann erhält man eine Übersicht mit dem Kommando jobs:\nroot@server /mnt/backup/images # jobs [1]+ Angehalten mv /home/public/* ./ Möchte man die Konsole für andere Zwecke verwenden, den Zeitraubenden Job aber trotzdem weiter ausführen, dann kann dieser im Hintergrund verschoben werden und dort weiter ausgeführt werden:\nbg 1 Anbei noch ein Beispiel: Ein Dummy Job (sleep 300) wird per \u0026ldquo;\u0026amp;\u0026rdquo; im Hintergrund gestartet und ausgeführt, dann wieder mit \u0026ldquo;fg 2\u0026rdquo; in den Vordergrund geholt und mit Strg-Z gestoppt. Anschließend mit \u0026ldquo;bg 2\u0026rdquo; im Hintergrund weiter ausgeführt:\nroot@server /mnt/backup/images # sleep 300 \u0026amp; [2] 14610 root@server /mnt/backup/images # root@server /mnt/backup/images # root@server /mnt/backup/images # jobs [1]+ Angehalten mv /home/public/* ./ [2]- Läuft sleep 300 \u0026amp; root@server /mnt/backup/images # root@server /mnt/backup/images # fg 2 sleep 300 ^Z [2]+ Angehalten sleep 300 root@server /mnt/backup/images # jobs [1]- Angehalten mv /home/public/* ./ [2]+ Angehalten sleep 300 root@server /mnt/backup/images # bg 2 [2]+ sleep 300 \u0026amp; root@server /mnt/backup/images # jobs [1]+ Angehalten mv /home/public/* ./ [2]- Läuft sleep 300 \u0026amp; root@server /mnt/backup/images # ","permalink":"https://www.scheffer-online.de/posts/prozess-anhalten/","summary":"\u003cp\u003eManchmal kann es sinnvoll sein, einen im Vordergrund gestarteten Prozess anzuhalten, weil dieser so viel CPU oder IO nutzt weshalb ein andere Prozess, auf den man gerade wartet, nicht fertig wird. Auf Rechnern, die entweder wenig CPU Power haben und/oder ein langsames Speichermedium besitzen, kann das schonaml vorkommen. Aber auch auf Power Servern kann das Prozess anhalten mal nützlich sein. Um den gestarteten Prozess nicht töten zu müssen, wäre es also sinnvoll, diesen anzuhalten und später wieder weiterlaufen zu lassen.\u003c/p\u003e","title":"Prozess anhalten"},{"content":"Prüfen on PIN gesetzt ist: AT+CPIN?\nPIN Eingeben: AT+CPIN=1234\nPin löschen: AT+CLCK=\u0026quot;SC\u0026quot;,0,\u0026quot;1234\u0026quot;\nStick Status, zeigt Hersteller ATI\nati Manufacturer: huawei Model: E173 Revision: 11.126.16.04.00 IMEI: 869878001234567 +GCAP: +CGSM,+DS,+ES Beispiel einer erfolgreichen Einwahl mit wvdail: # wvdial vodafone --\u0026gt; WvDial: Internet dialer version 1.61 --\u0026gt; Initializing modem. --\u0026gt; Sending: ATZ ATZ OK --\u0026gt; Sending: ATQ0 V1 E1 S0=0 \u0026amp;C1 \u0026amp;D2 +FCLASS=0 ATQ0 V1 E1 S0=0 \u0026amp;C1 \u0026amp;D2 +FCLASS=0 OK --\u0026gt; Sending: AT^SYSCFG=2,2,3FFFFFFF,2,4 AT^SYSCFG=2,2,3FFFFFFF,2,4 OK --\u0026gt; Modem initialized. --\u0026gt; Sending: ATM1L3DT*99# --\u0026gt; Waiting for carrier. ATM1L3DT*99# CONNECT --\u0026gt; Carrier detected. Starting PPP immediately. --\u0026gt; Starting pppd at Wed Mar 21 16:26:31 2018 --\u0026gt; Pid of pppd: 10192 --\u0026gt; Using interface ppp0 --\u0026gt; pppd: ▒[7f] --\u0026gt; pppd: ▒[7f] --\u0026gt; pppd: ▒[7f] --\u0026gt; pppd: ▒[7f] --\u0026gt; pppd: ▒[7f] --\u0026gt; pppd: ▒[7f] --\u0026gt; local IP address 100.76.134.164 --\u0026gt; pppd: ▒[7f] --\u0026gt; remote IP address 10.64.64.64 --\u0026gt; pppd: ▒[7f] --\u0026gt; primary DNS address 139.7.30.126 --\u0026gt; pppd: ▒[7f] --\u0026gt; secondary DNS address 139.7.30.125 --\u0026gt; pppd: ▒[7f] ^CCaught signal 2: Attempting to exit gracefully... --\u0026gt; Terminating on signal 15 --\u0026gt; pppd: ▒[7f] --\u0026gt; Connect time 4.3 minutes. --\u0026gt; pppd: ▒[7f] --\u0026gt; pppd: ▒[7f] --\u0026gt; pppd: ▒[7f] --\u0026gt; Disconnecting at Wed Mar 21 16:30:57 2018 /etc/wvdial.conf [Dialer vodafone] Auto DNS = on Init1 = ATZ Init2 = ATQ0 V1 E1 S0=0 \u0026amp;C1 \u0026amp;D2 +FCLASS=0 Modem Type = Analog Modem ISDN = 0 New PPPD = yes Modem = /dev/ttyUSB4 Baud = 921600 [Dialer umts] Carrier Check = no Init4 = AT+CGDCONT=1,\u0026#34;IP\u0026#34;,\u0026#34;web.vodafone.de\u0026#34; Stupid Mode = 1 Phone = *99# Dialer Command = ATM1L3DT Dial Attemps = 2 [Dialer pin] Init3 = AT+CPIN=1234 [Dialer Defaults] Dial Command = ATM1L3DT Modem Type = Analog Modem Baud = 9600 Username = nyx Carrier Check = on Password = nyx Stupid Mode = on Check Def Route = on ISDN = 0 Abort on Busy = off Init3 AT+CGDCONT = 1,\u0026#34;IP\u0026#34;,\u0026#34;web.vodafone.de\u0026#34; Abort on No Dialtone = on Ask Password = off Init = ATZ Phone = *99# Init1 = ATZ Init2 = ATQ0 V1 E1 S0=0 \u0026amp;C1 \u0026amp;D2 +FCLASS=0 Init4 = AT^SYSCFG=2,2,3FFFFFFF,2,4 Auto Reconnect = on Init2 ATQ0 V1 E1 S0 = 0 \u0026amp;C1 \u0026amp;D2 +FCLASS=0 Auto DNS = on Idle Seconds = 0 Dial Attempts = 100 Modem = /dev/ttyUSB4 Links: - [Using the Huawei E352s-5 UMTS USB Modem Stick with Ubuntu and OpenWrt](https://blog.philippklaus.de/2012/04/using-the-huawei-e352s-5-umts-usb-modem-stick-with-ubuntu-and-openwrt) - [Wvdial.conf für einen Huawei E220 Stick von Vodafone](https://wiki.siduction.de/index.php?title=Wvdial.conf_f%C3%BCr_einen_Huawei_E220_Stick_von_Vodafone) - [Script dialumts](https://wiki.siduction.de/index.php?title=Script_dialumts) - [CME ERROR (GSM Equipment Related errors)](https://www.micromedia-int.com/en/gsm-2/73-gsm/669-cme-error-gsm-equipment-related-errors) ","permalink":"https://www.scheffer-online.de/posts/umts-surf-stick/","summary":"\u003ch4 id=\"prüfen-on-pin-gesetzt-ist\"\u003ePrüfen on PIN gesetzt ist:\u003c/h4\u003e\n\u003cp\u003e\u003ccode\u003eAT+CPIN?\u003c/code\u003e\u003c/p\u003e\n\u003ch4 id=\"pin-eingeben\"\u003ePIN Eingeben:\u003c/h4\u003e\n\u003cp\u003e\u003ccode\u003eAT+CPIN=1234\u003c/code\u003e\u003c/p\u003e\n\u003ch4 id=\"pin-löschen\"\u003ePin löschen:\u003c/h4\u003e\n\u003cp\u003e\u003ccode\u003eAT+CLCK=\u0026quot;SC\u0026quot;,0,\u0026quot;1234\u0026quot;\u003c/code\u003e\u003c/p\u003e\n\u003ch4 id=\"stick-status-zeigt-hersteller\"\u003eStick Status, zeigt Hersteller\u003c/h4\u003e\n\u003cp\u003e\u003ccode\u003eATI\u003c/code\u003e\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-fallback\" data-lang=\"fallback\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eati\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eManufacturer: huawei\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eModel: E173\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eRevision: 11.126.16.04.00\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eIMEI: 869878001234567\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e+GCAP: +CGSM,+DS,+ES\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch4 id=\"beispiel-einer-erfolgreichen-einwahl-mit-wvdail\"\u003eBeispiel einer erfolgreichen Einwahl mit wvdail:\u003c/h4\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-gdscript3\" data-lang=\"gdscript3\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# wvdial vodafone\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e--\u0026gt;\u003c/span\u003e \u003cspan class=\"n\"\u003eWvDial\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003eInternet\u003c/span\u003e \u003cspan class=\"n\"\u003edialer\u003c/span\u003e \u003cspan class=\"n\"\u003eversion\u003c/span\u003e \u003cspan class=\"mf\"\u003e1.61\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e--\u0026gt;\u003c/span\u003e \u003cspan class=\"n\"\u003eInitializing\u003c/span\u003e \u003cspan class=\"n\"\u003emodem\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e--\u0026gt;\u003c/span\u003e \u003cspan class=\"n\"\u003eSending\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003eATZ\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eATZ\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eOK\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e--\u0026gt;\u003c/span\u003e \u003cspan class=\"n\"\u003eSending\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003eATQ0\u003c/span\u003e \u003cspan class=\"n\"\u003eV1\u003c/span\u003e \u003cspan class=\"n\"\u003eE1\u003c/span\u003e \u003cspan class=\"n\"\u003eS0\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"mi\"\u003e0\u003c/span\u003e \u003cspan class=\"o\"\u003e\u0026amp;\u003c/span\u003e\u003cspan class=\"n\"\u003eC1\u003c/span\u003e \u003cspan class=\"o\"\u003e\u0026amp;\u003c/span\u003e\u003cspan class=\"n\"\u003eD2\u003c/span\u003e \u003cspan class=\"o\"\u003e+\u003c/span\u003e\u003cspan class=\"n\"\u003eFCLASS\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"mi\"\u003e0\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eATQ0\u003c/span\u003e \u003cspan class=\"n\"\u003eV1\u003c/span\u003e \u003cspan class=\"n\"\u003eE1\u003c/span\u003e \u003cspan class=\"n\"\u003eS0\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"mi\"\u003e0\u003c/span\u003e \u003cspan class=\"o\"\u003e\u0026amp;\u003c/span\u003e\u003cspan class=\"n\"\u003eC1\u003c/span\u003e \u003cspan class=\"o\"\u003e\u0026amp;\u003c/span\u003e\u003cspan class=\"n\"\u003eD2\u003c/span\u003e \u003cspan class=\"o\"\u003e+\u003c/span\u003e\u003cspan class=\"n\"\u003eFCLASS\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"mi\"\u003e0\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eOK\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e--\u0026gt;\u003c/span\u003e \u003cspan class=\"n\"\u003eSending\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003eAT\u003c/span\u003e\u003cspan class=\"o\"\u003e^\u003c/span\u003e\u003cspan class=\"n\"\u003eSYSCFG\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"mi\"\u003e2\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"mi\"\u003e2\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"mi\"\u003e3\u003c/span\u003e\u003cspan class=\"n\"\u003eFFFFFFF\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"mi\"\u003e2\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"mi\"\u003e4\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eAT\u003c/span\u003e\u003cspan class=\"o\"\u003e^\u003c/span\u003e\u003cspan class=\"n\"\u003eSYSCFG\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"mi\"\u003e2\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"mi\"\u003e2\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"mi\"\u003e3\u003c/span\u003e\u003cspan class=\"n\"\u003eFFFFFFF\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"mi\"\u003e2\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"mi\"\u003e4\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eOK\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e--\u0026gt;\u003c/span\u003e \u003cspan class=\"n\"\u003eModem\u003c/span\u003e \u003cspan class=\"n\"\u003einitialized\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e--\u0026gt;\u003c/span\u003e \u003cspan class=\"n\"\u003eSending\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003eATM1L3DT\u003c/span\u003e\u003cspan class=\"o\"\u003e*\u003c/span\u003e\u003cspan class=\"mi\"\u003e99\u003c/span\u003e\u003cspan class=\"c1\"\u003e#\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e--\u0026gt;\u003c/span\u003e \u003cspan class=\"n\"\u003eWaiting\u003c/span\u003e \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003ecarrier\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eATM1L3DT\u003c/span\u003e\u003cspan class=\"o\"\u003e*\u003c/span\u003e\u003cspan class=\"mi\"\u003e99\u003c/span\u003e\u003cspan class=\"c1\"\u003e#\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eCONNECT\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e--\u0026gt;\u003c/span\u003e \u003cspan class=\"n\"\u003eCarrier\u003c/span\u003e \u003cspan class=\"n\"\u003edetected\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e  \u003cspan class=\"n\"\u003eStarting\u003c/span\u003e \u003cspan class=\"n\"\u003ePPP\u003c/span\u003e \u003cspan class=\"n\"\u003eimmediately\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e--\u0026gt;\u003c/span\u003e \u003cspan class=\"n\"\u003eStarting\u003c/span\u003e \u003cspan class=\"n\"\u003epppd\u003c/span\u003e \u003cspan class=\"n\"\u003eat\u003c/span\u003e \u003cspan class=\"n\"\u003eWed\u003c/span\u003e \u003cspan class=\"n\"\u003eMar\u003c/span\u003e \u003cspan class=\"mi\"\u003e21\u003c/span\u003e \u003cspan class=\"mi\"\u003e16\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"mi\"\u003e26\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"mi\"\u003e31\u003c/span\u003e \u003cspan class=\"mi\"\u003e2018\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e--\u0026gt;\u003c/span\u003e \u003cspan class=\"n\"\u003ePid\u003c/span\u003e \u003cspan class=\"n\"\u003eof\u003c/span\u003e \u003cspan class=\"n\"\u003epppd\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e10192\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e--\u0026gt;\u003c/span\u003e \u003cspan class=\"n\"\u003eUsing\u003c/span\u003e \u003cspan class=\"n\"\u003einterface\u003c/span\u003e \u003cspan class=\"n\"\u003eppp0\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e--\u0026gt;\u003c/span\u003e \u003cspan class=\"n\"\u003epppd\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"err\"\u003e▒\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"mi\"\u003e7\u003c/span\u003e\u003cspan class=\"n\"\u003ef\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e--\u0026gt;\u003c/span\u003e \u003cspan class=\"n\"\u003epppd\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"err\"\u003e▒\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"mi\"\u003e7\u003c/span\u003e\u003cspan class=\"n\"\u003ef\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e--\u0026gt;\u003c/span\u003e \u003cspan class=\"n\"\u003epppd\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"err\"\u003e▒\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"mi\"\u003e7\u003c/span\u003e\u003cspan class=\"n\"\u003ef\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e--\u0026gt;\u003c/span\u003e \u003cspan class=\"n\"\u003epppd\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"err\"\u003e▒\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"mi\"\u003e7\u003c/span\u003e\u003cspan class=\"n\"\u003ef\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e--\u0026gt;\u003c/span\u003e \u003cspan class=\"n\"\u003epppd\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"err\"\u003e▒\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"mi\"\u003e7\u003c/span\u003e\u003cspan class=\"n\"\u003ef\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e--\u0026gt;\u003c/span\u003e \u003cspan class=\"n\"\u003epppd\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"err\"\u003e▒\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"mi\"\u003e7\u003c/span\u003e\u003cspan class=\"n\"\u003ef\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e--\u0026gt;\u003c/span\u003e \u003cspan class=\"n\"\u003elocal\u003c/span\u003e  \u003cspan class=\"ne\"\u003eIP\u003c/span\u003e \u003cspan class=\"n\"\u003eaddress\u003c/span\u003e \u003cspan class=\"mf\"\u003e100.76\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"mf\"\u003e134.164\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e--\u0026gt;\u003c/span\u003e \u003cspan class=\"n\"\u003epppd\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"err\"\u003e▒\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"mi\"\u003e7\u003c/span\u003e\u003cspan class=\"n\"\u003ef\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e--\u0026gt;\u003c/span\u003e \u003cspan class=\"n\"\u003eremote\u003c/span\u003e \u003cspan class=\"ne\"\u003eIP\u003c/span\u003e \u003cspan class=\"n\"\u003eaddress\u003c/span\u003e \u003cspan class=\"mf\"\u003e10.64\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"mf\"\u003e64.64\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e--\u0026gt;\u003c/span\u003e \u003cspan class=\"n\"\u003epppd\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"err\"\u003e▒\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"mi\"\u003e7\u003c/span\u003e\u003cspan class=\"n\"\u003ef\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e--\u0026gt;\u003c/span\u003e \u003cspan class=\"n\"\u003eprimary\u003c/span\u003e   \u003cspan class=\"n\"\u003eDNS\u003c/span\u003e \u003cspan class=\"n\"\u003eaddress\u003c/span\u003e \u003cspan class=\"mf\"\u003e139.7\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"mf\"\u003e30.126\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e--\u0026gt;\u003c/span\u003e \u003cspan class=\"n\"\u003epppd\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"err\"\u003e▒\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"mi\"\u003e7\u003c/span\u003e\u003cspan class=\"n\"\u003ef\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e--\u0026gt;\u003c/span\u003e \u003cspan class=\"n\"\u003esecondary\u003c/span\u003e \u003cspan class=\"n\"\u003eDNS\u003c/span\u003e \u003cspan class=\"n\"\u003eaddress\u003c/span\u003e \u003cspan class=\"mf\"\u003e139.7\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"mf\"\u003e30.125\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e--\u0026gt;\u003c/span\u003e \u003cspan class=\"n\"\u003epppd\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"err\"\u003e▒\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"mi\"\u003e7\u003c/span\u003e\u003cspan class=\"n\"\u003ef\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e^\u003c/span\u003e\u003cspan class=\"n\"\u003eCCaught\u003c/span\u003e \u003cspan class=\"k\"\u003esignal\u003c/span\u003e \u003cspan class=\"mi\"\u003e2\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e  \u003cspan class=\"n\"\u003eAttempting\u003c/span\u003e \u003cspan class=\"n\"\u003eto\u003c/span\u003e \u003cspan class=\"n\"\u003eexit\u003c/span\u003e \u003cspan class=\"n\"\u003egracefully\u003c/span\u003e\u003cspan class=\"o\"\u003e...\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e--\u0026gt;\u003c/span\u003e \u003cspan class=\"n\"\u003eTerminating\u003c/span\u003e \u003cspan class=\"n\"\u003eon\u003c/span\u003e \u003cspan class=\"k\"\u003esignal\u003c/span\u003e \u003cspan class=\"mi\"\u003e15\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e--\u0026gt;\u003c/span\u003e \u003cspan class=\"n\"\u003epppd\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"err\"\u003e▒\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"mi\"\u003e7\u003c/span\u003e\u003cspan class=\"n\"\u003ef\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e--\u0026gt;\u003c/span\u003e \u003cspan class=\"n\"\u003eConnect\u003c/span\u003e \u003cspan class=\"n\"\u003etime\u003c/span\u003e \u003cspan class=\"mf\"\u003e4.3\u003c/span\u003e \u003cspan class=\"n\"\u003eminutes\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e--\u0026gt;\u003c/span\u003e \u003cspan class=\"n\"\u003epppd\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"err\"\u003e▒\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"mi\"\u003e7\u003c/span\u003e\u003cspan class=\"n\"\u003ef\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e--\u0026gt;\u003c/span\u003e \u003cspan class=\"n\"\u003epppd\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"err\"\u003e▒\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"mi\"\u003e7\u003c/span\u003e\u003cspan class=\"n\"\u003ef\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e--\u0026gt;\u003c/span\u003e \u003cspan class=\"n\"\u003epppd\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"err\"\u003e▒\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"mi\"\u003e7\u003c/span\u003e\u003cspan class=\"n\"\u003ef\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e--\u0026gt;\u003c/span\u003e \u003cspan class=\"n\"\u003eDisconnecting\u003c/span\u003e \u003cspan class=\"n\"\u003eat\u003c/span\u003e \u003cspan class=\"n\"\u003eWed\u003c/span\u003e \u003cspan class=\"n\"\u003eMar\u003c/span\u003e \u003cspan class=\"mi\"\u003e21\u003c/span\u003e \u003cspan class=\"mi\"\u003e16\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"mi\"\u003e30\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"mi\"\u003e57\u003c/span\u003e \u003cspan class=\"mi\"\u003e2018\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch4\u003e\u003c/h4\u003e\n\u003ch4 id=\"etcwvdialconf\"\u003e/etc/wvdial.conf\u003c/h4\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-fallback\" data-lang=\"fallback\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e[Dialer vodafone]\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eAuto DNS = on\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eInit1 = ATZ\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eInit2 = ATQ0 V1 E1 S0=0 \u0026amp;C1 \u0026amp;D2 +FCLASS=0\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eModem Type = Analog Modem\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eISDN = 0\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eNew PPPD = yes\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eModem = /dev/ttyUSB4\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eBaud = 921600\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e[Dialer umts]\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eCarrier Check = no\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eInit4 = AT+CGDCONT=1,\u0026#34;IP\u0026#34;,\u0026#34;web.vodafone.de\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eStupid Mode = 1\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePhone = *99#\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eDialer Command = ATM1L3DT\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eDial Attemps = 2\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e[Dialer pin]\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eInit3 = AT+CPIN=1234\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e[Dialer Defaults]\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eDial Command = ATM1L3DT\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eModem Type = Analog Modem\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eBaud = 9600\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUsername = nyx\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eCarrier Check = on\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePassword = nyx\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eStupid Mode = on\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eCheck Def Route = on\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eISDN = 0\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eAbort on Busy = off\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eInit3 AT+CGDCONT = 1,\u0026#34;IP\u0026#34;,\u0026#34;web.vodafone.de\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eAbort on No Dialtone = on\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eAsk Password = off\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eInit = ATZ\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePhone = *99#\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eInit1 = ATZ\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eInit2 = ATQ0 V1 E1 S0=0 \u0026amp;C1 \u0026amp;D2 +FCLASS=0\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eInit4 = AT^SYSCFG=2,2,3FFFFFFF,2,4\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eAuto Reconnect = on\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eInit2 ATQ0 V1 E1 S0 = 0 \u0026amp;C1 \u0026amp;D2 +FCLASS=0\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eAuto DNS = on\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eIdle Seconds = 0\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eDial Attempts = 100\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eModem = /dev/ttyUSB4\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch4 id=\"links\"\u003eLinks:\u003c/h4\u003e\n\u003cpre\u003e\u003ccode\u003e- [Using the Huawei E352s-5 UMTS USB Modem Stick with Ubuntu and OpenWrt](https://blog.philippklaus.de/2012/04/using-the-huawei-e352s-5-umts-usb-modem-stick-with-ubuntu-and-openwrt)\n\r\n- [Wvdial.conf für einen Huawei E220 Stick von Vodafone](https://wiki.siduction.de/index.php?title=Wvdial.conf_f%C3%BCr_einen_Huawei_E220_Stick_von_Vodafone)\n\r\n- [Script dialumts](https://wiki.siduction.de/index.php?title=Script_dialumts)\n\r\n- [CME ERROR (GSM Equipment Related errors)](https://www.micromedia-int.com/en/gsm-2/73-gsm/669-cme-error-gsm-equipment-related-errors)\n\u003c/code\u003e\u003c/pre\u003e","title":"UMTS Surf Stick"},{"content":"Docker Container mit statischer IP-Adresse:\ndocker network create --driver=bridge --subnet=192.168.0.0/24 --gateway=192.168.0.1 mynet docker run --ip=192.168.0.10 --net=mynet -ti some_image Quelle: https://github.com/docker/compose/issues/2804\n","permalink":"https://www.scheffer-online.de/posts/docker-container-mit-statischer-ip/","summary":"\u003ch1 id=\"docker\"\u003eDocker\u003c/h1\u003e\n\u003cp\u003eContainer mit statischer IP-Adresse:\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-fallback\" data-lang=\"fallback\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edocker network create --driver=bridge --subnet=192.168.0.0/24 --gateway=192.168.0.1 mynet\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edocker run --ip=192.168.0.10 --net=mynet -ti some_image\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eQuelle: \u003ca href=\"https://github.com/docker/compose/issues/2804\"\u003ehttps://github.com/docker/compose/issues/2804\u003c/a\u003e\u003c/p\u003e","title":"Docker Container mit statischer IP"},{"content":"Um auch unter Debian Wheezy das Tool inxi zu nutzen, hier ein kurzes Script zum nachinstallieren:\n#!/bin/bash apt-get -y install gawk lm-sensors binutils mesa-utils hddtemp sudo cd /tmp wget https://github.com/smxi/inxi/raw/master/inxi.tar.gz tar -xvzf inxi.tar.gz cp /tmp/inxi /usr/local/bin/ cp /tmp/inxi.1.gz /usr/share/man/man1/ rm -Rf inxi* ","permalink":"https://www.scheffer-online.de/posts/linux-analyse-tool-inxi-unter-debian-gnulinux-7-wheezy/","summary":"\u003cp\u003eUm auch unter Debian Wheezy das Tool \u003ccode\u003einxi\u003c/code\u003e zu nutzen, hier ein kurzes Script zum nachinstallieren:\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"cp\"\u003e#!/bin/bash\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eapt-get -y install gawk lm-sensors binutils mesa-utils hddtemp sudo\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003ecd\u003c/span\u003e /tmp\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ewget https://github.com/smxi/inxi/raw/master/inxi.tar.gz\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003etar -xvzf inxi.tar.gz\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecp /tmp/inxi /usr/local/bin/\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecp /tmp/inxi.1.gz /usr/share/man/man1/\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003erm -Rf inxi*\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e","title":"Linux Analyse Tool Inxi unter Debian GNU/Linux 7 (wheezy)"},{"content":"Um IPv4 Adressen \u0026ldquo;berechenbar\u0026rdquo; zu machen, wird zuerst der String mit der IPv4 Adresse in Decimal umgerechnet.\nDer String befindet sich z.B. in Zelle \u0026ldquo;B2\u0026rdquo;. Formel:\n=(LINKS($B$2;FINDEN(\u0026#34;.\u0026#34;;$B$2)-1)*2^32)+(TEIL($B$2;FINDEN(\u0026#34;.\u0026#34;;$B$2)+1;FINDEN(\u0026#34;.\u0026#34;;$B$2;FINDEN(\u0026#34;.\u0026#34;;$B$2)+1)-FINDEN(\u0026#34;.\u0026#34;;$B$2)-1)*2^16)+(TEIL($B$2;FINDEN(\u0026#34;.\u0026#34;;$B$2;FINDEN(\u0026#34;.\u0026#34;;$B$2)+1)+1;FINDEN(\u0026#34;.\u0026#34;;$B$2;FINDEN(\u0026#34;.\u0026#34;;$B$2;FINDEN(\u0026#34;.\u0026#34;;$B$2)+1)+1)-FINDEN(\u0026#34;.\u0026#34;;$B$2;FINDEN(\u0026#34;.\u0026#34;;$B$2)+1)-1)*2^8)+(TEIL($B$2;FINDEN(\u0026#34;.\u0026#34;;$B$2;FINDEN(\u0026#34;.\u0026#34;;$B$2;FINDEN(\u0026#34;.\u0026#34;;$B$2)+1)+1)+1;3)*2^0) Dann kann man mit dem Zahlenwert der IPv4 Adreese ganz normal rechnen, allerdings darauf achten, dass es immer ein Ganzzahlwert bleibt.\nUm nach der Berechnung wieder eine IPv4 Adresse zu bekommen, wandelt man das Ergebniss wieder mit der folgenden Formel um, der IP Dezimalwert befindet sich z.B. in Zelle \u0026ldquo;G6\u0026rdquo;:\n=GANZZAHL(G6/2^32)\u0026amp;\u0026#34;.\u0026#34;\u0026amp;GANZZAHL(REST(G6;2^32)/2^16)\u0026amp;\u0026#34;.\u0026#34;\u0026amp;GANZZAHL(REST(REST(G6;2^32);2^16)/2^8)\u0026amp;\u0026#34;.\u0026#34;\u0026amp;GANZZAHL(REST(REST(REST(G6;2^32);2^16);2^8)) Bespiel als Excel Sheet: IP.xlsx\n","permalink":"https://www.scheffer-online.de/posts/excel-ipv4-adressen-berechnen/","summary":"\u003cp\u003eUm IPv4 Adressen \u0026ldquo;berechenbar\u0026rdquo; zu machen, wird zuerst der String mit der IPv4 Adresse in Decimal umgerechnet.\u003c/p\u003e\n\u003cp\u003eDer String befindet sich z.B. in Zelle \u0026ldquo;B2\u0026rdquo;. Formel:\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-fallback\" data-lang=\"fallback\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e=(LINKS($B$2;FINDEN(\u0026#34;.\u0026#34;;$B$2)-1)*2^32)+(TEIL($B$2;FINDEN(\u0026#34;.\u0026#34;;$B$2)+1;FINDEN(\u0026#34;.\u0026#34;;$B$2;FINDEN(\u0026#34;.\u0026#34;;$B$2)+1)-FINDEN(\u0026#34;.\u0026#34;;$B$2)-1)*2^16)+(TEIL($B$2;FINDEN(\u0026#34;.\u0026#34;;$B$2;FINDEN(\u0026#34;.\u0026#34;;$B$2)+1)+1;FINDEN(\u0026#34;.\u0026#34;;$B$2;FINDEN(\u0026#34;.\u0026#34;;$B$2;FINDEN(\u0026#34;.\u0026#34;;$B$2)+1)+1)-FINDEN(\u0026#34;.\u0026#34;;$B$2;FINDEN(\u0026#34;.\u0026#34;;$B$2)+1)-1)*2^8)+(TEIL($B$2;FINDEN(\u0026#34;.\u0026#34;;$B$2;FINDEN(\u0026#34;.\u0026#34;;$B$2;FINDEN(\u0026#34;.\u0026#34;;$B$2)+1)+1)+1;3)*2^0)\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eDann kann man mit dem Zahlenwert der IPv4 Adreese ganz normal rechnen, allerdings darauf achten, dass es immer ein Ganzzahlwert bleibt.\u003c/p\u003e\n\u003cp\u003eUm nach der Berechnung wieder eine IPv4 Adresse zu bekommen, wandelt man das Ergebniss wieder mit der folgenden Formel um, der IP Dezimalwert befindet sich z.B. in Zelle \u0026ldquo;G6\u0026rdquo;:\u003c/p\u003e","title":"Excel IPv4 Adressen berechnen"},{"content":" html { text-align: center; } table { empty-cells: hide; margin-left: auto; margin-right: auto; } th { font-family: Corbel, \u0026quot;Lucida Grande\u0026quot;, \u0026quot;Lucida Sans Unicode\u0026quot;, \u0026quot;Lucida Sans\u0026quot;, \u0026quot;DejaVu Sans\u0026quot;, \u0026quot;Bitstream Vera Sans\u0026quot;, \u0026quot;Liberation Sans\u0026quot;, Verdana, \u0026quot;Verdana Ref\u0026quot;, sans-serif; } td { font-size: small; font-family: Consolas, \u0026quot;Andale Mono WT\u0026quot;, \u0026quot;Andale Mono\u0026quot;, \u0026quot;Lucida Console\u0026quot;, \u0026quot;Lucida Sans Typewriter\u0026quot;, \u0026quot;DejaVu Sans Mono\u0026quot;, \u0026quot;Bitstream Vera Sans Mono\u0026quot;, \u0026quot;Liberation Mono\u0026quot;, \u0026quot;Nimbus Mono L\u0026quot;, Monaco, \u0026quot;Courier New\u0026quot;, Courier, monospace; } .header { color: #ffffff; background: #00b0f0; } .standard { background: #c6e0b4; } .dscp { background: #bdd7ee; } .hex { color: gray; } IP QoS (Prec/DSCP/ToS Lookup Table)\nIP\rPrecedence\rDSCP\rToS\rNot-ECT\rECT(1)\rECT(0)\rCE\rDefault\r0\r(routine)\r0x00 (0)\r0x00 (0)\r000|000|00\r0x01 (1)\r000|000|01\r0x02 (2)\r000|000|10\r0x03 (3)\r000|000|11\rCS1\r1\r(priority)\r0x08 (8)\r0x20 (32)\r001|000|00\r0x21 (33)\r001|000|01\r0x22 (34)\r001|000|10\r0x23 (35)\r001|000|11\rAF11 - L\r0x0a (10)\r0x28 (40)\r001|010|00\r0x29 (41)\r001|010|01\r0x2a (42)\r001|010|10\r0x2b (43)\r001|010|11\rAF12 - M\r0x0c (12)\r0x30 (48)\r001|100|00\r0x31 (49)\r001|100|01\r0x32 (50)\r001|100|10\r0x33 (51)\r001|100|11\rAF13 - H\r0x0e (14)\r0x38 (56)\r001|110|00\r0x39 (57)\r001|110|01\r0x3a (58)\r001|110|10\r0x3b (59)\r001|110|11\rCS2\r2\r(immediate)\r0x10 (16)\r0x40 (64)\r010|000|00\r0x41 (65)\r010|000|01\r0x42 (66)\r010|000|10\r0x43 (67)\r010|000|11\rAF21 - L\r0x12 (18)\r0x48 (72)\r010|010|00\r0x49 (73)\r010|010|01\r0x4a (74)\r010|010|10\r0x4b (75)\r010|010|11\rAF22 - M\r0x14 (20)\r0x50 (80)\r010|100|00\r0x51 (81)\r010|100|01\r0x52 (82)\r010|100|10\r0x53 (83)\r010|100|11\rAF23 - H\r0x16 (22)\r0x58 (88)\r010|110|00\r0x59 (89)\r010|110|01\r0x5a (90)\r010|110|10\r0x5b (91)\r010|110|11\rCS3\r3\r(flash)\r0x18 (24)\r0x60 (96)\r011|000|00\r0x61 (97)\r011|000|01\r0x62 (98)\r011|000|10\r0x63 (99)\r011|000|11\rAF31 - L\r0x1a (26)\r0x68 (104)\r011|010|00\r0x69 (105)\r011|010|01\r0x6a (106)\r011|010|10\r0x6b (107)\r011|010|11\rAF32 - M\r0x1c (28)\r0x70 (112)\r011|100|00\r0x71 (113)\r011|100|01\r0x72 (114)\r011|100|10\r0x73 (115)\r011|100|11\rAF33 - H\r0x1e (30)\r0x78 (120)\r011|110|00\r0x79 (121)\r011|110|01\r0x7a (122)\r011|110|10\r0x7b (123)\r011|110|11\rCS4\r4\r(flash-override)\r0x20 (32)\r0x80 (128)\r100|000|00\r0x81 (129)\r100|000|01\r0x82 (130)\r100|000|10\r0x83 (131)\r100|000|11\rAF41 - L\r0x22 (34)\r0x88 (136)\r100|010|00\r0x89 (137)\r100|010|01\r0x8a (138)\r100|010|10\r0x8b (139)\r100|010|11\rAF42 - M\r0x24 (36)\r0x90 (144)\r100|100|00\r0x91 (145)\r100|100|01\r0x92 (146)\r100|100|10\r0x93 (147)\r100|100|11\rAF43 - H\r0x26 (38)\r0x98 (152)\r100|110|00\r0x99 (153)\r100|110|01\r0x9a (154)\r100|110|10\r0x9b (155)\r100|110|11\rCS5\r5\r(critical)\r0x28 (40)\r0xa0 (160)\r101|000|00\r0xa1 (161)\r101|000|01\r0xa2 (162)\r101|000|10\r0xa3 (163)\r101|000|11\rEF\r0x2e (46)\r0xb8 (184)\r101|110|00\r0xb9 (185)\r101|110|01\r0xba (186)\r101|110|10\r0xbb (187)\r101|110|11\rCS6\r6\r(internet)\r0x30 (48)\r0xc0 (192)\r110|000|00\r0xc1 (193)\r110|000|01\r0xc2 (194)\r110|000|10\r0xc3 (195)\r110|000|11\rCS7\r7\r(network)\r0x38 (56)\r0xe0 (224)\r111|000|00\r0xe1 (225)\r111|000|01\r0xe2 (226)\r111|000|10\r0xe3 (227)\r111|000|11\rQuelle: http://netnix.org/qos.html\n","permalink":"https://www.scheffer-online.de/posts/qos/","summary":"\u003cp\u003e \u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e  html { text-align: center; }\n\r\n  table { empty-cells: hide; margin-left: auto; margin-right: auto; }\n\n\r\n  th { font-family: Corbel, \u0026quot;Lucida Grande\u0026quot;, \u0026quot;Lucida Sans Unicode\u0026quot;, \u0026quot;Lucida Sans\u0026quot;, \u0026quot;DejaVu Sans\u0026quot;, \u0026quot;Bitstream Vera Sans\u0026quot;, \u0026quot;Liberation Sans\u0026quot;, Verdana, \u0026quot;Verdana Ref\u0026quot;, sans-serif; }\n\r\n  td { font-size: small; font-family: Consolas, \u0026quot;Andale Mono WT\u0026quot;, \u0026quot;Andale Mono\u0026quot;, \u0026quot;Lucida Console\u0026quot;, \u0026quot;Lucida Sans Typewriter\u0026quot;, \u0026quot;DejaVu Sans Mono\u0026quot;, \u0026quot;Bitstream Vera Sans Mono\u0026quot;, \u0026quot;Liberation Mono\u0026quot;, \u0026quot;Nimbus Mono L\u0026quot;, Monaco, \u0026quot;Courier New\u0026quot;, Courier, monospace; }\n\r\n  .header { color: #ffffff; background: #00b0f0; }\n\r\n  .standard { background: #c6e0b4; }\n\r\n  .dscp { background: #bdd7ee; }\n\r\n  .hex { color: gray; }\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e \u003c/p\u003e","title":"QoS"},{"content":"Eine Bash Subshell mit Umleitung der Ausgabe in eine Logdatei. Das Script „subshell“ und „t.bashrc” befinden sich beide im Home Verzeichnis im Unterordner “bin”. Das Log Verzeichniss sollte existieren und befindet sich auch im Home Verzeichnis.\nSHELL=\u0026#34;/bin/bash --rcfile ~/bin/t.bashrc\u0026#34; SUBSHELL_LOGDIR=~/log SubShell() { [ ! -e $SUBSHELL_LOGDIR ] \u0026amp;\u0026amp; mkdir -p $SUBSHELL_LOGDIR BASHLOG=$SUBSHELL_LOGDIR/$(date \u0026#39;+%Y%m%d_%H%m%S\u0026#39;)-$$.log clear echo \u0026#34;All Output from Shell will send to: $BASHLOG\u0026#34; echo $(date) \u0026gt;\u0026gt;$BASHLOG ( # bash: no job control in this shell exec 1\u0026gt; \u0026gt;(tee -a $BASHLOG) 2\u0026gt;\u0026amp;1 # /bin/bash -il /bin/bash --rcfile ~/bin/t.bashrc -i ) echo \u0026#34;$(date \u0026#39;+%Y%m%d_%H%m%S\u0026#39;) Session Closed.\u0026#34; \u0026gt;\u0026gt;$BASHLOG } # open Subshell ... SubShell alias l=\u0026#39;ls -alF --color=auto\u0026#39; alias la=\u0026#39;ls -la --color=auto\u0026#39; alias ll=\u0026#39;ls -l --color=auto\u0026#39; alias ls=\u0026#39;ls --color=auto\u0026#39; alias ls-l=\u0026#39;ls -l --color=auto\u0026#39; PS1=\u0026#39;\\[\\e[1;32m\\][\\u@\\h \\W]\\$\\[\\e[0m\\] \u0026#39; ","permalink":"https://www.scheffer-online.de/posts/bash-subshell-mit-logging/","summary":"\u003cp\u003eEine Bash Subshell mit Umleitung der Ausgabe in eine Logdatei. Das Script „subshell“ und „t.bashrc” befinden sich beide im Home Verzeichnis im Unterordner “bin”. Das Log Verzeichniss sollte existieren und befindet sich auch im Home Verzeichnis.\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-fallback\" data-lang=\"fallback\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSHELL=\u0026#34;/bin/bash --rcfile ~/bin/t.bashrc\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSUBSHELL_LOGDIR=~/log\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSubShell() {\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  [ ! -e $SUBSHELL_LOGDIR ] \u0026amp;\u0026amp; mkdir -p $SUBSHELL_LOGDIR\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  BASHLOG=$SUBSHELL_LOGDIR/$(date \u0026#39;+%Y%m%d_%H%m%S\u0026#39;)-$$.log\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  clear\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  echo \u0026#34;All Output from Shell will send to: $BASHLOG\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  echo $(date) \u0026gt;\u0026gt;$BASHLOG\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  (\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    # bash: no job control in this shell\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    exec 1\u0026gt; \u0026gt;(tee -a $BASHLOG) 2\u0026gt;\u0026amp;1\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    # /bin/bash -il\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    /bin/bash --rcfile ~/bin/t.bashrc -i\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  )\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  echo \u0026#34;$(date \u0026#39;+%Y%m%d_%H%m%S\u0026#39;) Session Closed.\u0026#34; \u0026gt;\u0026gt;$BASHLOG\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e# open Subshell ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSubShell\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-fallback\" data-lang=\"fallback\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ealias l=\u0026#39;ls -alF --color=auto\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ealias la=\u0026#39;ls -la --color=auto\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ealias ll=\u0026#39;ls -l --color=auto\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ealias ls=\u0026#39;ls --color=auto\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ealias ls-l=\u0026#39;ls -l --color=auto\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePS1=\u0026#39;\\[\\e[1;32m\\][\\u@\\h \\W]\\$\\[\\e[0m\\] \u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e","title":"Bash Subshell mit Logging"},{"content":"Dieser Beitrag beschreibt ein Shell Script um die Interface Auslastung eines Routers anzuzeigen. Die Abfragen erfolgen per SNMP Protokoll. Bezüglich der Zeitintervalle ist zu beachten, dass nicht alle Router Interface Daten im Sekunden Takt liefern (z.B. bei Cisco ASR Routern werden nur alle 10 Sekunden die Interface Counter aktualisiert).\nDas Script ifload nutzt graph.fnc für die Grafische ASCII Darstellung. Beide Dateien müssen sich im gleichen Verzeichniss befinden. Ansonsten müssen die SNMP Tools (snmpget, snmpwalk) installiert sein. Alle Scripte sind in meinem Home Directory im Subfolder „snmp“ abgelegt, von wo ich ifload starte.\nUsage of ifload: ifload \u0026lt;HOSTNAME\u0026gt; [INTERFACE] [-i|-h|-g|-c \u0026lt;community\u0026gt;] -i \u0026lt;nnn\u0026gt; : Interval in Seconds, default = 10 -h : this Help message -g : enable Graphic (ASCII) view -d : enable Debug -c \u0026lt;community\u0026gt; : set community String, default: public Ein Beispiel:\nifload - Mon Jan 13 12:19:46 CET 2014 Start: 12:18:27 Interval: 63 Range: 60 s Device Name: test_router_de Interface: Gi0/1.101 Descr.: *** Primary VPN WAN Link *** Bandwidth: 300M IOS: 7300 Software (C7300-JS-M), Version XX.X(XX)XXX, RELEASE SOFTWARE (fc1) ------------------------------------------------------------------------------------------ Date Data (Bps) Error Discard Load % CPU Load % Time In Out In Out In Out In Out 5sec 1min 5min ------------------------------------------------------------------------------------------ 18:19:46 28M 81M 0 0 0 0 9 27 48 42 39 INPUT: 61M2 | O | 61M2 | O . | | O O | | O o O | | O O O | | o O O oOO | | O o oO O O . . ..OOO | 27M6 | ----------O--O---OO--OO.-O.o-O.o--O--OO.--O.--oo-OOOOOOOO.o | 27M6 19M4 | . ...oO..OO .OOOoOOOoOOO.OOOooOoOOOOoOOOoOOO.OOOOOOOOOO | 19M4 OUTPUT: 92M5 | O | 92M5 | O O | | . O. O . | | O . O OO o ooO O | | . . OoO O o OO. . o O oO oOOOOO | 68M8 | OooO.-----OOOOO-O.oO-OOO..OOOOO---------------OO.---.OOOOOO | 68M8 | OOOOO Oo OOOOOOoOOOOOOOOOOOOOOOOoO O oOOO ..OOOOOOO | | OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.O. OOO OOOOOOOOOOOOOO | 51M8 | OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO. OOOO.OOOOOOOOOOOOOOO | 51M8 Quelltext zum Script ifload\n#!/bin/bash # # Klaus Scheffer DEBUG=0 HOST=$1 IFNAME=\u0026#34;\u0026#34; INTERVAL=10 GRAPH=0 STARTTIME=$(date \u0026#34;+%H:%M:%S\u0026#34;) SNMPBINPATH=/usr/bin AWKBIN=/bin/awk COMMUNITY=public ifloadhelp() { cat \u0026lt;\u0026lt;EOF Usage of $(basename $0): $(basename $0) \u0026lt;HOSTNAME\u0026gt; [INTERFACE] [-i|-h|-g|-c \u0026lt;community\u0026gt;] -i \u0026lt;nnn\u0026gt; : Interval in Seconds, default = $INTERVAL -h : this Help message -g : enable Graphic (ASCII) view -d : enable Debug -c \u0026lt;community\u0026gt; : set community String, default: public EOF exit 0 } # load my presettings from homedirectory [ -e ~/.ifload.conf ] \u0026amp;\u0026amp; . ~/.ifload.conf if [ \u0026#34;$HOST\u0026#34; == \u0026#34;\u0026#34; ]; then echo -e \u0026#34;Error: Wrong usage!\\n\\n\u0026#34; ifloadhelp exit 1 fi shift [ $# -gt 0 ] \u0026amp;\u0026amp; IFNAME=$1 while [ $# -gt 0 ]; do case $1 in -i) INTERVAL=$2 shift ;; -h) ifloadhelp ;; -g) GRAPH=1 ;; -d) DEBUG=1 ;; -c) COMMUNITY=$2 shift ;; esac shift done #echo \u0026#34;$HOST $IFNAME $INTERVAL $GRAPH\u0026#34; #exit 0 if [ $GRAPH -gt 0 ]; then . ./graph.fnc DATA_IN=$(for i in $(seq 60); do echo \u0026#34;0\u0026#34;; done) DATA_OUT=$(for i in $(seq 60); do echo \u0026#34;0\u0026#34;; done) i=0 fi DEVNAME=$($SNMPBINPATH/snmpget -v 2c -O v -c $COMMUNITY $HOST SNMPv2-MIB::sysName.0 | awk \u0026#39;{print $2}\u0026#39; | awk -F. \u0026#39;{print $1}\u0026#39;) SYSDESCR=$($SNMPBINPATH/snmpget -v 2c -O v -c $COMMUNITY $HOST SNMPv2-MIB::sysDescr.0 | head -n1 | cut -d\u0026#39;,\u0026#39; -f2-60) # echo \u0026#34;$SNMPBINPATH/snmpget -v 2c -O v -c $COMMUNITY $HOST SNMPv2-MIB::sysName.0\u0026#34; if [ -z $DEVNAME ]; then echo \u0026#34;Error: Device unreacheable or without Name!\u0026#34; exit 1 #else [ $DEBUG ] \u0026amp;\u0026amp; echo \u0026#34;Device Name: $DEVNAME\u0026#34; fi if [ \u0026#34;${IFNAME}\u0026#34; == \u0026#34;\u0026#34; ]; then echo \u0026#34;Choose one of the following Interfaces:\u0026#34; $SNMPBINPATH/snmpwalk -v 2c -c $COMMUNITY $HOST IF-MIB::ifName | awk \u0026#39;{ print $1 \u0026#34; : \u0026#34; $4 }\u0026#39; exit 0 fi CHKNUM() { if [[ $1 = *[[:digit:]]* ]]; then echo $1 else echo \u0026#34;0\u0026#34; fi } # $1 = N0 (T = now) # $2 = N1 (T = last intervall) # $3 = COUNTERLENGTH (Bits) CALCDIFF() { N0=$(CHKNUM $1) N1=$(CHKNUM $2) COUNTERLENGTH=$3 if [ $N0 -ge $N1 ]; then let D=N0-N1 else D=$(bc \u0026lt;\u0026lt;\u0026lt; \u0026#34;(2^$COUNTERLENGTH)-$N1+$N0\u0026#34;) fi echo $D } GETCOUNTER() { local ct=$(echo $COUNTER | cut -d\u0026#34; \u0026#34; -f $1) if [ \u0026#34;$ct\u0026#34; == \u0026#39;No\u0026#39; ]; then echo 0 else echo $ct | sed \u0026#39;s/[A-Za-z: ]//g\u0026#39; fi } AUTORANGE() { local f=$1 local ar=${f/\\.*} local div=1 [ $ar -ge 1 ] \u0026amp;\u0026amp; div=1 \u0026amp;\u0026amp; x=\u0026#34; \u0026#34; [ $ar -ge 1000 ] \u0026amp;\u0026amp; div=1000 \u0026amp;\u0026amp; x=\u0026#34;k\u0026#34; [ $ar -ge 1000000 ] \u0026amp;\u0026amp; div=1000000 \u0026amp;\u0026amp; x=\u0026#34;M\u0026#34; [ $ar -ge 1000000000 ] \u0026amp;\u0026amp; div=1000000000 \u0026amp;\u0026amp; x=\u0026#34;G\u0026#34; let arr=ar/div echo \u0026#34;$arr$x\u0026#34; } GREP_IFNAME=\u0026#34;${IFNAME}$\u0026#34; #echo $GREP_IFNAME #echo \u0026#34;snmpwalk -v 2c -c $COMMUNITY $HOST IF-MIB::ifName | grep \\\u0026#34;$GREP_IFNAME\\\u0026#34;\u0026#34; IFINDEX=$($SNMPBINPATH/snmpwalk -v 2c -c $COMMUNITY $HOST IF-MIB::ifName | grep \u0026#34;$GREP_IFNAME\u0026#34; | awk \u0026#39;{ print $1 }\u0026#39; | awk -F\u0026#34;.\u0026#34; \u0026#39;{ print $2 }\u0026#39;) [ $DEBUG -gt 0 ] \u0026amp;\u0026amp; echo \u0026#34;Intercae $IFNAME = Interface ID $IFINDEX\u0026#34; if [ \u0026#34;$IFINDEX\u0026#34; == \u0026#34;\u0026#34; ]; then echo \u0026#34;Error: ${IFNAME} unkown on this Device!\u0026#34; exit 1 fi [ $DEBUG -gt 0 ] \u0026amp;\u0026amp; echo \u0026#34;IFSPEED=$($SNMPBINPATH/snmpget -v 2c -c $COMMUNITY $HOST IF-MIB::ifSpeed.$IFINDEX)\u0026#34; IFSPEED=$($SNMPBINPATH/snmpget -v 2c -c $COMMUNITY $HOST IF-MIB::ifSpeed.$IFINDEX | awk \u0026#39;{ print $4 }\u0026#39;) IFALIAS=$($SNMPBINPATH/snmpget -v 2c -c $COMMUNITY $HOST IF-MIB::ifAlias.$IFINDEX | awk \u0026#39;{print substr($0,index($0,$4))}\u0026#39;) DIV=1 [ $IFSPEED -gt 1000000 ] \u0026amp;\u0026amp; DIV=1000 [ $IFSPEED -gt 10000000 ] \u0026amp;\u0026amp; DIV=1000000 [ $IFSPEED -gt 100000000 ] \u0026amp;\u0026amp; DIV=1000000 case $DIV in 1) OF=Bps ;; 1000) OF=kBps ;; 1000000) OF=MBps ;; 1000000000) OF=GBps ;; *) OF=Bps ;; esac # echo \u0026#34;IFSPEED($IFSPEED)=$(AUTORANGE $IFSPEED)\u0026#34; N=0 D_TS=0 D_IN=0 D_OUT=0 D_EIN=0 D_EOUT=0 D_DISCIN=0 D_DISCOUT=0 A_TS=0 A_IN=0 A_OUT=0 A_EIN=0 A_EOUT=0 A_DISCIN=0 A_DISCOUT=0 # IF-MIB::ifHCInOctets if [ $DIV -ge 1000000 ]; then MIBLIST=\u0026#34;SNMPv2-MIB::sysUpTime.0 IF-MIB::ifHCInOctets.$IFINDEX IF-MIB::ifHCOutOctets.$IFINDEX IF-MIB::ifInErrors.$IFINDEX IF-MIB::ifOutErrors.$IFINDEX IF-MIB::ifInDiscards.$IFINDEX IF-MIB::ifOutDiscards.$IFINDEX SNMPv2-SMI::enterprises.9.2.1.56.0 SNMPv2-SMI::enterprises.9.2.1.57.0 SNMPv2-SMI::enterprises.9.2.1.58.0\u0026#34; else MIBLIST=\u0026#34;SNMPv2-MIB::sysUpTime.0 IF-MIB::ifInOctets.$IFINDEX IF-MIB::ifOutOctets.$IFINDEX IF-MIB::ifInErrors.$IFINDEX IF-MIB::ifOutErrors.$IFINDEX IF-MIB::ifInDiscards.$IFINDEX IF-MIB::ifOutDiscards.$IFINDEX SNMPv2-SMI::enterprises.9.2.1.56.0 SNMPv2-SMI::enterprises.9.2.1.57.0 SNMPv2-SMI::enterprises.9.2.1.58.0\u0026#34; fi COUNTER=$($SNMPBINPATH/snmpget -v 2c -c $COMMUNITY $HOST $MIBLIST | sed \u0026#39;s/://g\u0026#39; | awk \u0026#39;{ print $3 }\u0026#39;) clear while [ 1 == 1 ]; do LOAD=$($SNMPBINPATH/snmpget -v 2c -c $COMMUNITY $HOST $MIBLIST | awk \u0026#39;{ print $4 }\u0026#39; | xargs) if [ $DEBUG -eq 1 ]; then echo \u0026#34;IFINDEX = $IFINDEX\u0026#34; echo \u0026#34;$SNMPBINPATH/snmpget -v 2c -c $COMMUNITY $HOST $MIBLIST\u0026#34; echo \u0026#34;n=$N load=$LOAD\u0026#34; else # echo \u0026#34;n=$N load=$LOAD\u0026#34; RANGE= TS=$(echo $LOAD | cut -d\u0026#34; \u0026#34; -f 1 | sed \u0026#39;s/[()]//g\u0026#39;) IN=$(echo $LOAD | cut -d\u0026#34; \u0026#34; -f 2) OUT=$(echo $LOAD | cut -d\u0026#34; \u0026#34; -f 3) ERRIN=$(echo $LOAD | cut -d\u0026#34; \u0026#34; -f 4) ERROUT=$(echo $LOAD | cut -d\u0026#34; \u0026#34; -f 5) DISCIN=$(echo $LOAD | cut -d\u0026#34; \u0026#34; -f 6) DISCOUT=$(echo $LOAD | cut -d\u0026#34; \u0026#34; -f 7) CPU5=$(echo $LOAD | cut -d\u0026#34; \u0026#34; -f 8) CPU60=$(echo $LOAD | cut -d\u0026#34; \u0026#34; -f 9) CPU300=$(echo $LOAD | cut -d\u0026#34; \u0026#34; -f 10) let D_TS=TS-A_TS let RANGE=INTERVAL*60 D_IN=$(CALCDIFF $IN $A_IN $(GETCOUNTER 2)) D_OUT=$(CALCDIFF $OUT $A_OUT $(GETCOUNTER 3)) D_EIN=$(CALCDIFF $ERRIN $A_EIN $(GETCOUNTER 4)) D_EOUT=$(CALCDIFF $ERROUT $A_EOUT $(GETCOUNTER 5)) D_DISCIN=$(CALCDIFF $DISCIN $A_DISCIN $(GETCOUNTER 6)) D_DISCOUT=$(CALCDIFF $DISCOUT $A_DISCOUT $(GETCOUNTER 7)) A_TS=$TS A_IN=$IN A_OUT=$OUT A_EIN=$ERRIN A_EOUT=$ERROUT A_DISCIN=$DISCIN A_DISCOUT=$DISCOUT # 1 Octett = 8 Bit #let BPS_IN=D_IN*8*100/D_TS #let BPS_OUT=D_OUT*8*100/D_TS #let BPS_EIN=D_EIN*8*100/D_TS #let BPS_EOUT=D_EOUT*8*100/D_TS BPS_IN=$(echo \u0026#34;$D_IN*8*100/$D_TS\u0026#34; | bc -l) BPS_OUT=$(echo \u0026#34;$D_OUT*8*100/$D_TS\u0026#34; | bc -l) BPS_EIN=$(echo \u0026#34;$D_EIN*8*100/$D_TS\u0026#34; | bc -l) BPS_EOUT=$(echo \u0026#34;$D_EOUT*8*100/$D_TS\u0026#34; | bc -l) IFLOAD_IN=$(echo \u0026#34;$BPS_IN*100/$IFSPEED\u0026#34; | bc -l) IFLOAD_OUT=$(echo \u0026#34;$BPS_OUT*100/$IFSPEED\u0026#34; | bc -l) if [ $GRAPH -eq 0 ]; then BPS_IN=$(AUTORANGE $BPS_IN) BPS_OUT=$(AUTORANGE $BPS_OUT) BPS_EIN=$(AUTORANGE $BPS_EIN) BPS_EOUT=$(AUTORANGE $BPS_EOUT) if [ $N -eq 0 ]; then echo -e \u0026#34;\\e[H$(basename $0) - $(date) Start: $STARTTIME Interval: $N Range: $RANGE s\u0026#34; echo \u0026#34;Device Name: $DEVNAME\u0026#34; echo \u0026#34;Interface: $IFNAME Descr.: $IFALIAS\u0026#34; echo \u0026#34;Bandwidth: $(AUTORANGE $IFSPEED)\u0026#34; echo -e \u0026#34;IOS: $SYSDESCR\\n\u0026#34; printf \u0026#34;%49s\\n\u0026#34; \u0026#34;------------------------------------------------------------------------------------------\u0026#34; printf \u0026#34;%-10s %-13s %-13s %-13s %-13s %-13s\\n\u0026#34; Date \u0026#34;Data (Bps)\u0026#34; Error Discard \u0026#34;Load %\u0026#34; \u0026#34;CPU Load %\u0026#34; printf \u0026#34;%-10s %-6s %-6s %-6s %-6s %-6s %-6s %-6s %-6s %-6s %-6s %-6s\\n\u0026#34; Time In Out In Out In Out In Out 5sec 1min 5min printf \u0026#34;%49s\\n\u0026#34; \u0026#34;------------------------------------------------------------------------------------------\u0026#34; else # echo \u0026#34;$(date \u0026#34;+%H:%M:%S\u0026#34;) ($TS) In/Out=$BPS_IN/$BPS_OUT $OF Err(In/Out)=$D_EIN/$D_EOUT Load(In/Out)=$IFLOAD_IN/$IFLOAD_OUT%\u0026#34; # printf \u0026#34;%-10s %-6s %-6s %-6s %-6s %-6s %-6s %-6s %-6s %-6s %-6s %-6s\\n\u0026#34; $(date \u0026#34;+%H:%M:%S\u0026#34;) $BPS_IN $BPS_OUT $D_EIN $D_EOUT $D_DISCIN $D_DISCOUT $IFLOAD_IN $IFLOAD_OUT $CPU5 $CPU60 $CPU300 printf \u0026#34;%-10s %-6s %-6s %-6s %-6s %-6s %-6s %-6s %-6s %-6s %-6s %-6s\\n\u0026#34; $(date \u0026#34;+%H:%M:%S\u0026#34;) $BPS_IN $BPS_OUT $D_EIN $D_EOUT $D_DISCIN $D_DISCOUT ${IFLOAD_IN/\\.*} ${IFLOAD_OUT/\\.*} $CPU5 $CPU60 $CPU300 fi else DATA_IN=$(echo $DATA_IN $BPS_IN | cut -d\u0026#39; \u0026#39; -f2-60) DATA_OUT=$(echo $DATA_OUT $BPS_OUT | cut -d\u0026#39; \u0026#39; -f2-60) echo -e \u0026#34;\\e[H$(basename $0) - $(date) Start: $STARTTIME Interval: $N Range: $RANGE s\u0026#34; echo \u0026#34;Device Name: $DEVNAME\u0026#34; echo \u0026#34;Interface: $IFNAME Descr.: $IFALIAS\u0026#34; echo \u0026#34;Bandwidth: $(AUTORANGE $IFSPEED)\u0026#34; echo -e \u0026#34;IOS: $SYSDESCR\\n\u0026#34; printf \u0026#34;%49s\\n\u0026#34; \u0026#34;------------------------------------------------------------------------------------------\u0026#34; printf \u0026#34;%-10s %-13s %-13s %-13s %-13s %-13s\\n\u0026#34; Date \u0026#34;Data (Bps)\u0026#34; Error Discard \u0026#34;Load %\u0026#34; \u0026#34;CPU Load %\u0026#34; printf \u0026#34;%-10s %-6s %-6s %-6s %-6s %-6s %-6s %-6s %-6s %-6s %-6s %-6s\\n\u0026#34; Time In Out In Out In Out In Out 5sec 1min 5min printf \u0026#34;%49s\\n\u0026#34; \u0026#34;------------------------------------------------------------------------------------------\u0026#34; printf \u0026#34;%-10s %-6s %-6s %-6s %-6s %-6s %-6s %-6s %-6s %-6s %-6s %-6s\\n\u0026#34; $(date \u0026#34;+%H:%M:%S\u0026#34;) $(AUTORANGE $BPS_IN) $(AUTORANGE $BPS_OUT) $D_EIN $D_EOUT $D_DISCIN $D_DISCOUT ${IFLOAD_IN/\\.*} ${IFLOAD_OUT/\\.*} $CPU5 $CPU60 $CPU300 echo -e \u0026#34;\\nINPUT:\\n\u0026#34; graph 9 $DATA_IN echo -e \u0026#34;\\nOUTPUT:\\n\u0026#34; graph 9 $DATA_OUT fi fi sleep $INTERVAL let N=N+1 [ $N -gt 600 ] \u0026amp;\u0026amp; exit 0 done # #end Funktion für Ascii Grafik Ausgabe: graph.fnc (Original Source: Bashscripts.org, Ascii Graphing)\n#!/bin/bash ## graph.fnc -- by Patsie # Shell function that draws a graph with average line in ASCII # The graph will have a width equal to the number of data points # and a height equal to the first argument # Usage: graph \u0026lt;height\u0026gt; \u0026lt;val1\u0026gt; [\u0026lt;val2\u0026gt; [\u0026lt;...\u0026gt;]] function graph { height=$1; shift; echo \u0026#34;$@\u0026#34; | awk -v height=$height \u0026#39;BEGIN { } ## convert big numbers to short kilo/mega/giga etc numbers function pow1k(bignum) { metric=1; num=bignum; # devide by 1000 until we have got a small enough number while (num\u0026gt;=1000) { metric++; num/=1000; } num=int(num); # get SI prefix (kilo, mega, giga, tera, peta, exa, zotta, yotta) si=substr(\u0026#34; KMGTPEZY\u0026#34;, metric, 1); # get a division remainder to total our number of characters to a maximum of 4 division=substr(bignum, length(num)+1, 3-length(num)); # right align the output str=sprintf(\u0026#34;%s%c%s\u0026#34;, num, si, division); return(sprintf(\u0026#34;% 4s\u0026#34;, str)); } { # get smallest, largest and total of all numbers min=max=tot=$1; for (x=2; x\u0026lt;=NF; x++) { tot+=$x; if ($x\u0026gt;max) max=$x; if ($x\u0026lt;min) min=$x; } # the difference between largest and smallest number is out working area diff=max-min; if (diff==0) diff=1; # all numbers are the same?! # some fancy math to get the average of all numbers avg=(tot/NF); avgfull=int(((avg-min)*height/diff)); # average full avghalf=int(((avg-min)*height/diff)%1+0.5); # average half # fill arrays bars for (x=1; x\u0026lt;=NF; x++) { v=$x-min; # our value i=0;array[x]=\u0026#34;\u0026#34;; # blank the array full=int((v*height/diff)); # how many full? ttrd=int((v*height/diff)%1+0.333); # 2/3rd full? otrd=int((v*height/diff)%1+0.666); # 1/3rd full? while (i\u0026lt;full) { array[x]=array[x]\u0026#34;O\u0026#34;; i++; } # fill all fulls if (ttrd\u0026gt;0) { array[x]=array[x]\u0026#34;o\u0026#34;; i++; } # fill 2/3rd else if (otrd\u0026gt;0) { array[x]=array[x]\u0026#34;.\u0026#34;; i++; } # or 1/3rd # average line or blank while (i\u0026lt;height) { # fill to the top if (i==avgfull) # with average line if (avghalf\u0026gt;0) array[x]=array[x]\u0026#34;-\u0026#34;; else array[x]=array[x]\u0026#34;_\u0026#34;; else array[x]=array[x]\u0026#34; \u0026#34;; # or mostly blanks i++; } } # display output for (y=height; y\u0026gt;0; y--) { line=\u0026#34;\u0026#34;; num=\u0026#34; \u0026#34;; # blank line and number if (y==avgfull+1) { num=pow1k(int(avg)); } # show average number if (y==height) { num=pow1k(max); } # show maximum number if (y==1) { num=pow1k(min); } # show minimum number for (x=1; x\u0026lt;=NF; x++) # do for all data values line=line\u0026#34;\u0026#34;substr(array[x],y,1); # create line from arrays printf(\u0026#34; %s | %s | %s\\n\u0026#34;, num, line, num); # display 1 line } }\u0026#39; } ","permalink":"https://www.scheffer-online.de/posts/interface-load-snmp/","summary":"\u003cp\u003eDieser Beitrag beschreibt ein Shell Script um die Interface Auslastung eines Routers anzuzeigen. Die Abfragen erfolgen per SNMP Protokoll.\nBezüglich der Zeitintervalle ist zu beachten, dass nicht alle Router Interface Daten im Sekunden Takt liefern (z.B. bei Cisco ASR Routern werden nur alle 10 Sekunden die Interface Counter aktualisiert).\u003c/p\u003e\n\u003cp\u003eDas Script ifload nutzt graph.fnc für die Grafische ASCII Darstellung. Beide Dateien müssen sich im gleichen Verzeichniss befinden. Ansonsten müssen die SNMP Tools (snmpget, snmpwalk) installiert sein. Alle Scripte sind in meinem Home Directory im Subfolder „snmp“ abgelegt, von wo ich ifload starte.\u003c/p\u003e","title":"Interface Load (SNMP )"}]