Skip to content

dstat ...

linux Mein Kollege Roland hat mich auf das wirklich tolle Tool dstat aufmerksam gemacht. Dstat ist ein Tool mit dem man Ressourcenverbrauch beobachten kann und - noch wichtiger - es ist bunt. :-) Nein, das wirklich spannende ist, dass man seine Messungen mit Timestamps versehen kann, das ist das, was vielen anderen Tools leider fehlt.

Zusätzlich kann es die Ausgaben auch in eine CSV-Datei schreiben, was die spätere Analyse erleichtert.

dstat -v zeigt beispielsweise alles an, was auch vmstat anzeigt, dstat -tv hängt einen Zeitstempel vor die Ausgabe. Und, noch interessanter dstat -tv 5 schreibt - wie vmstat - alle fünf Sekunden einen Summenwert aktualisiert aber jede Sekunde, so dass man die Entwicklung beobachten kann (der grüne Wert im Screenshot).



dstat hat eine grosse Menge an Kommandozeilenoptionen, zum Beispiel dstat -tclmgry, ein Blick auf die Manpage lohnt sich!

Einführung in Git ...

Bei Google+ wurde ich danach gefragt, ob ich die Kurzeinführung in Git, die ich auf der Arbeit gehalten habe, veröffentlichen könnte. Hier ist sie.

Die Beispiele lohnen sich nur, wenn man sie versucht, nachzuvollziehen.



Viel Spass.

Das PDF (rund 100 kB) kann man hier herunterladen: einfuehrung-git.pdf

Lizenz ist CC-BY, das liefere ich auch noch im PDF nach.

Little helpers ...

linux Eigentlich ist es schön blöd, so viel mit Open-Source-Software zu machen und die eigenen "Kleiningkeiten", die das Leben erleichtern, nicht zu veröffentlichen.

Daher habe ich mich entschieden, meine Skripte mal in eine vorzeigbare Form zu bringen und in einem eigenen GitHub-Repository zu veröffentlichen.

ddeimeke/littlehelpers

Vielleicht kann das ja jemand von Euch auch gebrauchen.

Umgebungen ...

Es gibt kaum einen Punkt, an dem Sichtweisen so weit auseinander gehen, wie bei der Bezeichnung von Systemumgebungen, auf denen Applikationen laufen.

  • Development
  • Test
  • Integration
  • Preproduction oder Quality oder Abnahme oder User acceptance test (UAT)
  • Production


Die Namen sind meistens so wie oben oder ähnlich, es gibt häufig pro Stufe auch mehrere getrennte Umgebungen in sehr grossen Firmen oder sehr grossen Projekten. Die Stufen sind in der Reihenfolge der Wertigkeit sortiert.

Die Idee dahinter ist klar, man möchte anhand der Umgebung die Wichtigkeit festhalten. Leider funktioniert das nicht oder nur ungenügend. Ein Entwicklungssystem, auf dem 150 Entwickler arbeiten kann grösseren wirtschaftlichen Schaden verursachen als ein Abnahmesystem, auf dem nur drei Tester unterwegs sind. Schlimmer noch, das Abnahmesystem kann wichtiger werden als das Entwicklungssystem, wenn gerade ein kritischer Patch getestet wurd.

Das Problem ist, dass Plattformverantwortliche häufig gar nicht wissen, was in den einzelnen Umgebungen läuft und daher werden alle Systeme bis Oberkante des Betriebssystems als produktiv betrachten.

Ein zweites Problem ist, dass grosse IT-Umgebungen einen Fabrikbetrieb darstellen, die nur aus dem einen Grund kostengünstig arbeiten, dass es keine Ausnahmen gibt (na, gut, aber vielleicht nur wenige).

Aber auch da kann es Betrachtungsunterschiede geben.

So kann eine Plattform mit einem Service Level Agreement (SLA) oder Operation Level Agreement (OLA) betrieben werden, der sich deutlich von dem entsprechenden Level der Applikation unterscheidet.

Das ist alles Bestandteil der IT Infrastructure Library (ITIL), mit der jeder Computerfuzzy im Rahmen seiner beruflichen Laufbahn konfrontiert wird.

Sich die möglichen Kombinationen zu überlegen und die Konsequenzen daraus, kann einem echt einen Knoten ins Hirn machen.

Betriebssystem hat einen geringeren Level als die Applikation:
Ja, das gibt es, die Applikation kann durch einen Loadbalancer geclustert sein.

Betriebssystem hat einen höheren Level als die Applikation:
Ja, das gibt es natürlich auch. Das Betriebssystem kann auf einem Clusternode laufen und muss hochverfügbar sein, damit der Cluster ständig läuft.

Betriebssystem hat den gleichen Level wie die Applikation:
Klar, oder?

Rufumleitung ...

Altes Wissen, das auch heute noch funktioniert. Heute einmal GSM-Codes und insbesondere die Rufumleitung. Anstatt mühsam in Menüs nach dem richtigen Punkt zu suchen, mit dem man eine Rufumleitung setzen kann, kann man sie auch immer noch (!) mit GSM Codes setzen und - was noch besser ist - sie auch genau so im Telefonbuch des mobilen Funktelefons ablegen.

Es gibt sechs verschiedene Basis-Codes (BC):

21    alle Anrufe
61    wenn innerhalb der Zeit keine Rufannahme
      (5 - 30 s sind möglich)
62    nicht erreichbar
67    besetzt
004   alle bedingten Rufumleitungen (die 60er Codes oben),
      Statusabfrage leider nicht möglich
002   alle Rufumleitungen - gilt nur für das Ausschalten


Am Beispiel "Alle Anrufe" zeige ich hier einmal die einzelnen Möglichkeiten:

Status abfragen: *#21#
Alle Umleitungen ausschalten: ##21#
Einschalten der alten Umleitung: **21#

Umleiten aller Anrufe: **21*0789569114#
#21# Gesetzte Umleitung Ausschalten
*21# Gesetzte Umleitung Einschalten

Sonderfall, 10 Sekunden zeitverzögert: **61*0789569114**10#


Hier gibt es noch weitere Informationen und Links zu dem Thema.

Mit dem Bloggen starten ...

Gestern bin ich gefragt worden, was zu beachten ist, wenn man mit dem Bloggen beginnt. Wie so häufig bin ich anderer Meinung als die meisten anderen :-) (Das heisst nicht, dass ich besser bin, nur anders als andere).

  • Was muss ich wissen?
  • Was soll ich tun?
  • Was soll ich vermeiden?
  • Welche Artikellänge ist gut?
  • Welche technische Tiefe sollen die Artikel haben?

Ich kam nicht umhin, zu antworten: "Wie immer kommt es darauf an.".

Es hängt vom Zielpublikum ab und es hängt von den Zielen ab, die man erreichen möchte.

Es gibt gute Gründe, lange Artikel zu haben, wenn die Leserschaft diese mag. Meine Erfahrung ist, dass das in der Regel sehr interessierte Leute sind, die längere Artikel mögen. Ich transferiere - als Gegenbeispiel - lange Artikel einmal die Woche auf meinen Kindle und lese sie nicht am Bildschirm, aber das ist mein Ansatz. Andere handhaben das vermutlich unterschiedlich.

Hier mit diesem Blog habe ich zwei Ziele, die ich erreichen möchte:

  1. Ich möchte gerne mit den Lesern in Dialog treten. Das heisst vor allem, dass das Kommentieren so einfach wie irgend möglich sein muss. Keine Hürden für Kommentatoren, die Arbeit, falsche (Spam-)Kommentare auszusortieren muss beim Blogbetreiber - also mir - liegen. (Also keine Captchas oder E-Mail-Bestätigungen). Selbstverständlich müssen rechtliche Vorgaben beachtet werden.
  2. Das Blog ist die zentrale Informationsquelle für Artikel, ich defragmentiere nicht und nutze die anderen Plattformen überwiegend, um Blogartikel zu promoten. Aber der Inhalt bleibt im Blog. Punkt. (In dem Zusammenhang ist es schade, dass das Teilen und kommentieren auf allen Plattformen stattfindet).

Dinge, die man meiner Meinung nach beachten sollte.

  1. Das Blog ist Teil der eigenen "Marke" (Dirk Deimeke) und sollte auch so behandelt werden.
  2. Authentisch sein, nicht verbiegen um vermeintlich erfolgreicher zu werden. Die Leser merken, wenn man nicht mehr hinter dem steht, was im Blog passiert.
  3. Kommentare nicht löschen, niemals. Ja, das ist manchmal schwierig, aber "Zensur" ist auch schwierig. Ich würde nur Kommentare löschen, die rechtlich fragwürdig sind. (Tatsächlich musste ich das aber noch nie tun).
  4. Regelmässig Beiträge bringen. Ein Blog lebt von aktuellem Inhalt. Wenn Leute länger als (geschätzt) einen Monat keinen Beitrag sehen, vermuten sie, dass das Blog tot ist. Es kann besser sein, einen Artikel zu veröffentlichen und einen weiteren so vorbereiten, dass er in einer Woche online geht, als ihn sofort ins Blog zu stellen. Meiner Meinung nach sollte man wenigstens einen Artikel pro Woche schreiben.
  5. Ich würde dringend empfehlen, mit einer selbst gehosteten Lösung an den Start zu gehen. Das Publikum auf neue Feeds und neue Adressen umzuziehen kann enorm schmerzhaft sein und man wird damit Leser verlieren.

Ein Wort zum Schluss dieses Artikels: Wenn man mit dem Blog Geld verdienen möchte, gibt es viele andere Dinge zu beachten, aber vorab die Warnung, dass es nur sehr wenige Menschen gibt, die von den Blogeinnahmen leben können.

Business Netzwerke?

Vielleicht kann mich einer von Euch einmal erhellen.

Welchen Nutzen haben Business Netzwerke wie Xing oder LinkedIn, wenn man gerade nicht auf der Suche nach einer neuen Beschäftigung ist?

Was ich nachvollziehen kann, ist dass man den Werdegang aktueller und früherer Kollegen nachvollziehen kann und eventuell zu vielen interessanten Firmen einen Ansprechpartner hat, den man kennt. Begriffen. Dass man durch den Kontakt auch immer Zugriff auf die aktuelle Adresse hat, ist auch ein Plus. Ebenfalls begriffen.

Für Freiberufler ist ein solches Netzwerk natürlich eine willkommene Möglichkeit, sich darzustellen und seine Bereitschaft für neue Projekte zu signalisieren. Das ist aber auch nichts anderes als die Jobsuche bei "abhängig Beschäftigten".

Die Forenfunktionalität ist bei den beiden grossen Netzwerken sehr rudimentär vorhanden und sorgt - zumindest in meinem Bereich (Systemadministration und System Engineering) - nicht gerade für viel Unterhaltung oder für sinnvolle Diskussionen. Die finde ich eher auf Mailinglisten.

Als Werbeplattform für eigene Blogartikel oder eigene Webseiten sind andere soziale Netzwerke, für mich Google+, für andere vielleicht Facebook, deutlich besser geeignet, wenn ich mir mal die Statistik meiner Webseiten anschaue.

Interessanter sind vielleicht für den technischen sogar noch Stack Exchange (und der "Careers" genannte Ableger) oder GitHub.

Also, wenn Ihr Antworten oder Ideen habt, dann nur her damit.

(Links zu meinen Profilen finden sich in den Kontaktinformationen).

Kaputt ...

Das passiert ja "eigentlich" nur "den anderen". Kurz nach Ablauf der Garantie ist mein Hauptrechner zuhause ein halbes Jahr nach Ablauf der Garantie aus dem Tiefschlaf nicht wieder aufgewacht.

Daten habe ich glücklicherweise keine verloren. Trotzdem ärgerlich so etwas.

Ob ich mir noch einmal einen Rechner zusätzlich zum Notebook kaufen werde, weiss ich nicht. Momentan hängt das Notebook mit ordentlicher Tastatur am grossen Monitor und tut, was es soll. Mir fehlt nur eine Dockingstation zum Glück.

Wenn jemand von Euch weiss, wo man einen Portreplikator oder eine Dockingstation für ein Thinkpad X201i herbekommt, bin ich für jeden Tipp dankbar.

Mehr Swap?

linux Weil mich gerade jemand via E-Mail danach gefragt hat, hier einmal die kurze Erklärung, wie man Swapspace bekommen kann, selbst dann, wenn man kein freies Device mehr hat.

Zuerst eine Datei erzeugen (hier 1 GB als Beispiel), die später den Swap aufnehmen soll, /pfad ist der Weg zu einem Dateisystem mit ausreichend Platz:
dd if=/dev/zero of=/pfad/swapfile count=2097152


Im nächsten Schritt wird aus der Datei eine swap-Datei gemacht:
mkswap /pfad/swapfile


Jetzt wird sie noch als Swap hinzugefügt:
swapon -p 0 /pfad/swapfile

Die Priorität 0 (bis 32767) ist die niedrigste, die vergeben werden kann. Das bedeutet, der Swapspace wird nur dann benutzt wenn der Swap mit höherer Priorität bereits verbraucht wurde.

Um diese Änderung dauerhaft zu machen, muss der neue Swap noch in die /etc/fstab eingetragen werden.
/pfad/swapfile none swap sw,pri= 0 0

Das kann doch nicht so schwer sein ...

Nachdem ich jetzt fünf mal nacheinander den gleichen Fehler gemacht habe, muss ich das schnell weg dokumentieren.

16:06:27 [root@rico:/srv/www/myown-it.com] # git init .
Initialized empty Git repository in /srv/www/myown-it.com/.git/
16:06:59 [root@rico:/srv/www/myown-it.com] # git add .
16:07:08 [root@rico:/srv/www/myown-it.com] # git remote add origin gitosis@rico.yawnrz.net:www-myown-it.com.git
16:07:23 [root@rico:/srv/www/myown-it.com] # git commit -m "init"
[master (root-commit) 16540f0] init
3296 files changed, 340870 insertions(+)
...
16:07:38 [root@rico:/srv/www/myown-it.com] 1 # git push origin master
Counting objects: 3344, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3263/3263), done.
Writing objects: 100% (3344/3344), 5.47 MiB | 5.52 MiB/s, done.
Total 3344 (delta 794), reused 0 (delta 0)
To gitosis@rico.yawnrz.net:www-myown-it.com.git
* [new branch] master -> master


Ja, das ist Teil meines Backup-Konzeptes.

Mailverschlüsselung ...

Simwama (Sind wir einmal) ehrlich, Mails verschlüsseln ist mit GPG und aktueller Software sehr leicht.

Am "Web of Trust" teilzunehmen, ist für einen Durchschnittsnutzer immer noch zu komplex. Ärgerlicherweise hat sich an der Komplexität in den letzten knapp 20 Jahren auch nicht wirklich etwas geändert.

Im "Web of Trust" werden Vertrauenspfade aufgebaut, die mir als Nutzer bestätigen, dass der öffentliche Schlüssel, den ich von einem Kommunikationspartner bekommen habe, wirklich der Person gehört und von niemandem "in der Mitte" kompromittiert wurde. Um diese Identitäten zu bestätigen, werden Keysgining-Parties gehalten, in der die Ausweise kontrolliert werden und die Schlüssel später bestätigt (signiert) werden.

Damit bekommen Telefonbücher aka Keyserver ihren Sinn.

Wie kann man das leichter machen? Offizielle Anlaufstellen für das signieren von Schlüsseln? Post? Banken? Einwohnermeldeämter?

Rückmeldung vom Threema-Support ...

Die Fragen, die ich in meinem gestrigen Blog-Artikel zu Threema gestellt habe, habe ich auch direkt an den Support gesendet und dieser hat binnen 24 Stunden geantwortet und mir die explizite Erlaubnis erteilt, die Antworten zu veröffentlichen.

Ich möchte an dieser Stelle auf die Grundsatzdiskussion in den Kommentaren des vorherigen Artikels hinweisen.

Meine Anfrage:

Email: dirk@deimeke.net
Identity: UXHWAXXT
IP address: 193.108.233.65

Hallo

Ich habe Threema installiert und habe aber noch zwei offene Fragen, die mir Ihre Webseite nicht beantworten konnte:

1. Die App ist nicht Open Source, was bedeutet, dass niemand die Verschlüsselungsalgorithmen überprüfen kann und niemand kann sagen, ob die Nachrichten wirklich verschlüsselt auf dem Handy gespeichert und versendet werden.

2. Es fehlt ein unabhängiger Audit Ihrer Firma, die das Konzept überprüft.

Planen Sie diese Punkte anzugehen?

Beste Grüsse

Dirk Deimeke

P.S.: Mit Ihrer Erlaubnis würde ich Ihre Antwort auch in meinem Blog veröffentlichen. Dort habe ich heute Threema kurz vorgestellt


Und die Antwort:

Guten Tag,

1. Folgende Seite könnte Sie zu diesem Thema interessieren:
https://threema.ch/validation/

2. Wir haben vor, den Quellcode der App von einer unabhängigen Firma prüfen und zertifizieren zu lassen. Bislang scheiterte das allerdings noch an den sehr hohen Kosten.

Gerne dürfen Sie diese Antworten in Ihrem Blog veröffentlichen.

Mit freundlichen Grüssen,

Threema Support


Erst einmal ist es prima, dass sich die Firma des Problems bewusst ist und das auch angehen möchte. Das kommt zu einem Henne-Ei-Problem, die Applikation muss verkauft werden, um den Audit zu ermöglichen und die Applikation verkauft sich erst dann gut, wenn der Audit gelaufen ist.

Die Antwortzeit ist auch prima und hat mich überzeugt.

Threema ...

Wir sollten verschlüsselt kommunizieren, auch wenn wir nichts zu verbergen haben und wenn es einem dann noch so leicht gemacht wird, spricht eigentlich nichts dagegen. Threema ist eine Applikation für Android- und iOS-Smartphones, die verschlüsselte Kommunikation erlaubt. Dabei lehnt sie sich stark an den "Primus" WhatsApp an, nur Gruppenchats sind noch (!) nicht implementiert und die Anzahl der unterstützten Smartphone-Betriebssysteme ist kleiner.

Ich würde ja gerne, aber keiner ausser mir nutzt es.


Tja, das typische Henne-Ei-Problem. Irgendwer muss damit anfangen, es zu nutzen, warum nicht wir? Wenn alle darauf warten, dass "die anderen" auf gesicherte Kommunikation setzen, wird sich nie etwas ändern. Und, wie bereits geschrieben, in Sachen Komfort muss man keine Abstriche machen.

Es gibt allerdings auch zwei Schwachstellen am Konzept:

  1. Die App ist nicht Open Source, was bedeutet, dass niemand die Verschlüsselungsalgorithmen überprüfen kann und niemand kann sagen, ob die Nachrichten wirklich verschlüsselt auf dem Handy gespeichert und versendet werden.
  2. Es fehlt ein Audit der Firma durch eine unbeteiligte Firma, die das Konzept überprüft.


Das sind Punkte, bei denen man derzeit noch dem Hersteller Kasper Systems GmbH vertrauen muss.

Aber die Datenhaltung in Zentraleuropa, in diesem Fall in der Schweiz ist für mich ein echtes Plus. Die Datenschutzerklärung ist in verständlichem Deutsch verfasst und die Sätze

Die verschlüsselten Nachrichten und Medien (Bilder, Videos etc.) werden auf den Servern gelöscht, sobald sie erfolgreich zugestellt wurden.

und auch

Es werden keine Protokolle über den Nachrichtenaustausch (d.h. wer wem zu welcher Zeit eine Nachricht geschickt hat) geführt.


gefällt mir sehr gut. Meiner Meinung nach müsste Threema - im Gegensatz zu WhatsApp - auch auf Tablets ohne Mobilfunkkarte funktionieren.

TeX Live 2013 ...

TeX Live 2013 ist in den vergangenen Tagen erschienen.

TeX Live ist eine der wenigen Softwaresammlungen, die ich manuell installiere und aktualisiere. Das liegt einfach daran, dass ich auf Rechnern mit verschiedenen Betriebssystemen "TeXe" und ich gerne das gleiche LaTeX auf allen Systemen einsetze, um Fehler auf allen Systemen gleich zu halten ;-)

Installation über das Internet für Linux (oder Unix) und Cygwin unter Windows geht über das gleiche Archiv (wieder einmal ein "hoch auf Perl"). Für "normales" Windows gibt es ein separates Paket und sogar eine deutschsprachige Installationsanleitung.

Aktuell hält man die Installation übrigens via:
tlmgr update --self
tlmgr update --all

Git-Repositories packen ...

So ein lebendes Git-Repository ist ziemlicher "Platzverschwender". Mein Hauptrepository, in dem alle meine Dokumente und Scans und Bewerbungen und Skripte und einfach alles liegen, wurde grösser und grösser. Zum Schluss war es bei 16 GB obwohl die "Nutzdaten" nur einen Bruchteil des Repositories ausmachten.

Zeit, einmal einen git repack anzustossen.

Wenn man das unbedarft auf ein grosses Repository loslässt, merkt man sehr schnell, wie langsam der Rechner werden kann, wenn er ins Swapping fällt. Um das einzugrenzen, sollte der Parameter --window-memory gesetzt werden. Meine Beobachtung ist, dass der pro Core gilt. Die Parameter --window und --depth geben die Tiefe und die Anzahl der Objekte für die Delta-Kompression an. -a sorgt dafür, dass alles in gross Packs gepackt wird und -d, dass obsolet gewordene Packs gelöscht werden.

Damit kann man eine Menge erreichen.

16G	ddeimeke.git
Counting objects: 19947, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (7173/7173), done.
Writing objects: 100% (19947/19947), done.
Total 19947 (delta 14053), reused 17947 (delta 12645)
6.4G	ddeimeke.git


Allerdings bremst das den Rechner so aus, dass kaum noch arbeiten möglich ist, was man aber mit nice und ionice in den Griff bekommt. Ersteres sorgt dafür, dass die CPU-Benutzung limitiert wird und zweiteres tut gleiches für I/O.

In Summe resultiert das in folgendes kleine Skript.

#!/bin/bash

for i in *.git
do
        du -hsx "${i}"
        cd "${i}"
        nice -n 19 ionice -c 2 -n 7 git repack -a -d --depth=250 --window=250 --window-memory=1g
        cd ..
        du -hsx "${i}"
        echo
done