Skip to content

Docker-Hilfe ist hilfreich ...

docker Prinzipiell finde ich es ja super, dass die Docker-Kommandos eine eingebaute Hilfsfunktion haben, aber manchmal ist die Hilfe schon anders als erwartet.

Ich war mir nicht sicher, ob ich zuerst den Quell- oder Zieltag angeben muss beim Docker-Tag-Kommando:

$ docker tag --help

Usage:  docker tag IMAGE[:TAG] IMAGE[:TAG]

Tag an image into a repository

Options:
      --help   Print usage

Hotel-WLAN ...

linux Am vergangenen Wochenende durfte ich einmal mehr in einem Hotel zu Gast sein, das ein kaputt konfiguriertes WLAN hatte. Manchmal frage ich, was die Dienstleister befürchten, wenn sie den Zugang so kastrieren.

Für mich ist elementar, dass ich via SSH auf meine Server zugreifen kann, aber Port 22 ausgehend war geblockt. Das habe ich relativ schnell in den Griff bekommen, in dem ich via "Remote Console" auf einem meiner Server sslh installiert habe. sslh nimmt Verbindungen auf Port 443 (https) an und entscheidet mit dem Handshake an welchen Dienst die Verbindung "übergeben wird". Das klappt problemlos und ziemlich gut, wenn der WLAN-Administrator nicht auf Protokollebene blockt.

Zugriff geht dann via:

ssh -p 443 user@sslh-server.example.net


Die Weiterverbindung auf andere Server lässt sich dann mittels folgendem Befehl realisieren (das geht auch transparent mit der unten aufgeführten Lösung):

ssh -o ProxyJump=user@sslh-server.example.net user@ziel.example.com


Für reine SSH-Verbindungen ist das prima, aber es gibt ja zum einen noch andere Dienste (unter anderem Usenet, Protokoll nntp, Port 119), die ich auch noch nutzen möchte.

Da kommt dann das Tool sshuttle zum Einsatz. sshuttle benutzt SSH, um darüber alle tcp-Verbindungen plus DNS mittels Paketfilterregeln weiter zu leiten. Um die lokalen Regeln anzupassen wird sudo-Zugriff auf den root-Account benötigt.

sshuttle --dns --remote=user@sslh-server.example.net:443 0/0


Für mich funktioniert das und es macht "falsch" konfigurierte Netzwerke benutzbar.

Powerline ...

linux Ich habe jetzt einmal meinen Prompt von Liquid Prompt auf Powerline umgestellt, weil es damit ein wenig konsistenter ist, da sowohl die Shell wie auch Vim und tmux unterstützt werden.

Bei Fedora 27 ist Powerline direkt dabei, bei CentOS muss man Powerline "von Hand" installieren, das Verfahren wird auch bei anderen Distributionen funktionieren.

Fedora 27:
dnf install powerline tmux-powerline vim-powerline
systemctl enable powerline
systemctl start powerline


CentOS 7:
yum install python-pip
pip install powerline-status

cd /usr/share/fonts
curl -LO https://github.com/powerline/powerline/raw/develop/font/PowerlineSymbols.otf
fc-cache -vf /usr/share/fonts/

cd /etc/fonts/conf.d/
curl -LO https://github.com/powerline/powerline/raw/develop/font/10-powerline-symbols.conf


.bashrc
export POWERLINE_BASH_CONTINUATION=1
export POWERLINE_BASH_SELECT=1

# Fedora 27:
source /usr/share/powerline/bash/powerline.sh

# CentOS 7:
source /usr/lib/python2.7/site-packages/powerline/bindings/bash/powerline.sh


.vimrc
# Nur CentOS 7:
set rtp+=/usr/lib/python2.7/site-packages/powerline/bindings/vim/

# Fedora 27 und CentOS 7:
set laststatus=2


.tmux.conf
# Fedora 27:
source /usr/share/tmux/powerline.conf

# CentOS 7:
source /usr/lib/python2.7/site-packages/powerline/bindings/tmux/powerline.conf

Nachtrag zu Firefox 57 ...

Bei mir haben sich Änderungen bei den Extensions ergeben.

Von den in diesem Artikel erwähnten Plugins habe ich Textarea Cache rausgeworfen, weil das deutlich zu viel CPU verbraucht hat und die dort erwähnte Pinboard-Extension hat nachträglich nicht benötigte Rechte angefragt.

Pinboard bediene ich jetzt durch die Pinboard Web Extension, die sich nahezu identisch wie die originale Extension verhält.

Für Textarea Cache habe ich (noch) keinen Ersatz.

Firefox 57 ...

Der neue Firefox in Version 57 - Codename "Quantum" - ist wahnsinnig schnell geworden. Dass es vorher langsam war, nerkt man erst, wenn man die ersten Seiten mit der neuen Version aufgerufen hat.

Das neue Extension-System sorgt dafür, dass viele Extensions im neuen Firefox nicht mehr laufen. Angekündigt war es lange (ich meine seit Version 54), aber anscheinend haben die meisten Extension-Autoren das nicht ernst genommen.

Bei mir laufen fünf Extensions, die ich nicht missen möchte. Alle unten verlinkten Extensions laufen unter dem aktuellen Firefox.

  • Pinboard Pin - ersetzt die originale Firefox-Extension von pinboard.in, sollte die Extension auf der Seite des Dienste aktualisiert werden, wechsele ich wieder (habe mich einfach zu sehr an die Bedienung gewöhnt).
  • Textarea Cache ersetzt Lazarus, ein Tool, was die Eingaben in Textboxen auf Webseiten rettet, wenn man irrtümlich die Seite geschlossen hat.
  • uBlock Origin sorgt für die "Digitale Selbstverteidigung".
  • Update Scanner prüft in regelmässigen Abständen Webseiten auf Veränderungen. Sehr nützlich, wenn die Webseite keinen RSS-Feed anbietet.
  • Wallabagger speichert seiten in meiner Wallabag-Instanz zum später Lesen und dient als Basis für meinen Linkdump.

Fedora 27 ...

fedora Normalerweise aktualisiere ich mein Client-Betriebssystem dadurch, dass ich - grob zusammengefasst - ein Backup mache, den Rechner neu installiere und dann die Daten zurück sichere (siehe auch Neuinstallation Fedora 26 und Update auf eine neue Ubuntu-Version).

Dieses Mal war ich "abenteuerlustig" 8-) und habe mit den Bordmittel ein Backup gemacht, so wie es hier beschrieben wird.

Es hat wahnsinnig gut funktioniert.

Ich musste im Vorfeld den Citrix Receiver deinstallieren, weil es kein "webkitgtk" mehr gibt und habe stattdessen den Webreceiver installiert, der die Abhängkeit nicht hat. VirtualBox hat noch kein Repo für Fedora 27, die bereits installierte Version funktioniert aber bestens weiter.

Klasse. Allerdings werde ich das - obwohl es so gut funktioniert hat - nicht bei jedem Release so machen, weil das Entmüllen auch etwas wert ist.

Ich habe schon einige Linux-Distributionen durchprobiert und muss gestehen, dass mir Fedora am Besten gefällt. Allerdings haben sich natürlich alle anderen Distros auch weiterentwickelt und da kenne ich den aktuellen Stand nicht mehr.

Webspace-Inventar 2017 ...

Dieser Artikel ist eine Antwort auf den Artikel von Thomas zum Thema.

Auf meinem Server laufen die folgenden Webapplikationen, Reihenfolge ist alphabetisch und sagt nichts über die Wertigkeit aus.

  • DokuWiki ist die Wikisoftware, die ich benutze, wenn ich einmal ein Wiki brauche. Kommt ohne Datenbank zurecht.
  • Das Freie Software Fotobuch ist eine Zusammenstellung von Personen und deren Lieblingssoftware.
  • Gitea stellt mir einen Gitserver mit grafischer Oberfläche zur Verfügung.
  • GNUsocial bietet eine Instanz des freien sozialen Netzes.
  • Kanboard ist eine sehr einfache, aber dafür leistungsfähige Umsetzung eines Kanboards.
  • Netdata - sehen was läuft.
  • Nextcloud nutze ich sowohl als Filesynchronisationslösung mit automatischem Upload von Handy-Photos wie auch zur Synchroniation des Kalenders und der Kontakte mit dem Handy.
  • Piwik aks Webabanalysewerkzeug.
  • phpMyAdmin, wenn ich "mal schnell" etwas mit der Datenbank machen muss.
  • Roundcube ist mein Webmailer.
  • RSS-Bridge wandelt beispielsweise Tweets von Twitter in einen RSS-Feed.
  • Serendipity ist die Blogsoftware, die ich benutze.
  • Tiny Tiny RSS ist mein Feedreader (News+ mit entsprechendem Plugin auf dem Android-Tablet).
  • Wallabag - hier landen alle längeren Artikel, die ich noch lesen will (auch über ein Plugin in Tiny Tiny RSS).
  • YOURLS ist ein URL-Verkürzer, den ich nur noch aus historischen Gründen benutze.


Dazu kommen noch kleinere Dienste, die kein Webfrontend haben.

An dieser Stelle möchte ich nicht vergessen, Let's Encrypt und ACMEfetch (Anleitung hier im Blog) zu erwähnen, die dafür sorgen, dass alles, was Web ist, über https bereitgestellt werden kann.

Neuinstallation Fedora 26 ...

fedora Durch die verschiedenen sozialen Netzwerke, in denen ich mich bewege, schwappen gerade Anleitungen wie man von Fedora 25 auf Fedora 26 aktualisiert, hier ein Beispiel.

Ich werde es so halten "wie schon immer" (Ubuntu) und mit jedem Linux, das ich bis jetzt benutzt habe, ich werde meinen Rechner neu installieren.

Der Grund ist schon seit Jahren der gleiche, nämlich Datenhygiene: Da ich viel mit Software experimentiere und viele Programme ausprobiere, nutze ich die Neuinstallation, um mich von nicht mehr benötigten Altlasten und nicht mehr gebrauchten Konfigurationsdateien zu trennen.

Die Installation ist für das kommende Wochenende geplant.

tasksh review ...

taskwarrior Diesen Artikel habe ich schon sehr lange in der Pipeline. Das aktuelle Release von tasksh ist ein guter Anlass ihn auch zu veröffentlichen.

"Eigentlich" (tm) ist tasksh eine Hilfe für Tippfaule, die nicht immer das Kommando task tippen wollen, wenn sie mit ihren Aufgaben arbeiten.

Aber tasksh hat ein Killerfeature und das ist review, das Kommando tut genau das, was der Name auch impliziert. Es hilft Euch, regelmässig Eure Aufgabenliste durchzusehen. Das Feature gibt es seit Version 1.1.0, aktuell ist seit heute Nacht die Version 1.2.0.

Dazu speichert es in einem User defined Attribute den Zeitpunkt, wann das letzte Review stattgefunden hat und nimmt sich die Aufgabe erst dann wieder vor, wenn eine Woche (konfigurierbar!) vergangen ist.

Wenn nur Zeit ist, sich beispielsweise fünf Aufgaben anzusehen, dann kann man review auch mit dem Parameter 5 aufrufen, um die Anzahl der durchzusehenden Aufgaben zu beschränken.

Da ich gerne meine offenen Aufgaben einmal pro Woche durchschauen möchte, nutze ich nur aus diesem einen Grund tasksh.

while true ...

linux Neben vielen anderen Pluspunkten ist die Shell etwas, was ich an Linux besonders mag.

Bis vor kurzem habe ich meine LaTeX-Präsentationen und andere Dokumente mittels Makefile und einer Endlos-Schleife entwickelt. Dokumentbetrachter wie beispielsweise Okular oder Evince (Adobe Reader kann es nicht) erlauben es, dass eine gerade angeschaute Datei verändert werden darf und zeigen die Veränderungen auch direkt an.

Dazu benutze ich ein (nahezu) generisches Makefile (make clean löscht beispielsweise alle Temporärdateien):
.PHONY: clean
.DEFAULT_GOAL := lessons-learned.pdf

clean:
        find . \( -name '*.dvi' -o -name '*.aeb' -o -name '*.aux' -o -name '*.idx' -o -name '*.ilg' -o -name '*.ind' -o -name '*.ivz' -o -name '*.ivz.xml' -o -name '*.log' -o -name '*.pic.xml' -o -name '*.toc' -o -name '*.nav' -o -name '*.out' -o -name '*.snm' -o -name '*.vrb' -o -name '*~' -o -name '*.pdfpc' -o -name '*.fls' -o -name '*.fdb_latexmk' -o -name '*.xdv' \) -delete

lessons-learned.pdf:    *.tex *.png # *.jpg
        xelatex lessons-learned
        xelatex lessons-learned
        xelatex lessons-learned


Und der Rest wird durch eine Endlossschleife erledigt:
while : # oder while true
do
  make -q || make
  date
  sleep 5
done


Allerdings hat sich dieses Verfahren erledigt, nachdem ich bei Sujeevan von latexmk gelesen habe.

Seit dem reicht ein:
latexmk -pvc -xelatex lessons-learned.tex
make clean

Das Open-Source-Dilemma ...

gedanken Wenn man - wie beispielsweise ich - sehr (sehr) viel Open-Source-Software benutzt, kommt man irgendwann zu dem Punkt, dass man auch selber etwas beitragen möchte. Das ist viel leichter als man gemeinhin denkt. Aus diesem Grund habe ich im letzten Jahr auf der OpenRheinRuhr einen dazu passenden Vortrag gehalten.

Hier sind die Folien dazu (JavaScript):



Es gibt da leider zwei Dilemmata:

Aus Sicht des potentiellen Unterstützers: Gerade meine Fähigkeiten werden in dem Projekt, dass ich gerne unterstützen möchte, nicht benötigt. Gut, dann kann man sich immer noch in einem anderen Projekt engagieren, nur da dann leider nicht mit so viel Herzblut. Aber, wie im Vortrag erwähnt, es lohnt sich immer, Werbung für das Lieblingsprojekt zu machen.

Ärgerlich hier ist, dass man darüber nur sehr bedingt (kaum) Anerkennung bekommt und gerade diese Anerkennung eine der grössten Triebfedern ist.

Aus Sicht des Projektes ist es umgekehrt leider häufig so, dass gerade das eigene Projekt nicht so viel Liebe ab bekommt, wie man gerne hätte oder dass die gebrauchten Fähigkeiten so speziell sind, dass nur wenige Menschen beitragen können. Da ist dann leider auch schwierig, die eigenen Qualitätsmassstäbe herunter zu schrauben, um mehr Unterstützer zu bekommen.

Die Alternative wäre, jeden beitragen zu lassen und dann als Qualitätsverwalter die Leute in die richtige Richtung zu stossen. Das birgt wiederum die Gefahr, dass es mir dann irgendwie selber keinen Spass mehr macht.

Was also tun? Stabile Seitenlage?

Ich habe dafür keine Lösung, zumindest keine gute, die alle zufrieden stellt. Ich selber nutze privat (fast) ausschliesslich Open-Source-Software, kann mich aber "nur" in drei Projekten engagieren, obwohl es alle anderen auch verdient hätten.

Wenn Ihr Vorschläge und Ideen habt, schreibt sie gerne in die Kommentare.

GNU time ...

In den "Core Utilities" der meisten Linuxdistributionen findet sich das Tool GNU time (ja, die Homepage ist ein bisschen, nun, ..., nichtssagend).

Das time-Kommando als eingebautes Kommando der Bash (oder anderer Shells) kennen viele, auch die charakteristische Ausgabe:

$ time bash
$ exit

real    0m2.608s
user    0m0.137s
sys     0m0.326s


Ein wenig gesprächiger ist GNU time:

$ /usr/bin/time bash
$ exit
0.18user 0.37system 0:04.17elapsed 13%CPU (0avgtext+0avgdata 3736maxresident)k
0inputs+80outputs (0major+96587minor)pagefaults 0swaps


Im "verbose-Modus" kann man dann aber schon richtig ordentlich Informationen abgreifen:

$ /usr/bin/time -v bash
$ exit
        Command being timed: "bash"
        User time (seconds): 0.11
        System time (seconds): 0.30
        Percent of CPU this job got: 12%
        Elapsed (wall clock) time (h:mm:ss or m:ss): 0:03.36
        Average shared text size (kbytes): 0
        Average unshared data size (kbytes): 0
        Average stack size (kbytes): 0
        Average total size (kbytes): 0
        Maximum resident set size (kbytes): 3732
        Average resident set size (kbytes): 0
        Major (requiring I/O) page faults: 0
        Minor (reclaiming a frame) page faults: 96806
        Voluntary context switches: 713
        Involuntary context switches: 155
        Swaps: 0
        File system inputs: 0
        File system outputs: 80
        Socket messages sent: 0
        Socket messages received: 0
        Signals delivered: 0
        Page size (bytes): 4096
        Exit status: 0


Die manpage gibt noch weitere Optionen an.

Pipe Viewer ...

In den letzten Jahren habei sich reichlich viele tar.bz2-Archive mit zum Teil über 100 Gigabytes bei mir angesammelt. Die mussten einmal dringend aufgeräumt werden.

Bei Aufräumen war mir Pipe Viewer eine grosse Hilfe. Na, ja, Hilfe ist vielleicht übertrieben, aber "subjektive Zeitverkürzung" hat auch ihren Wert.

Pipe Viewer macht genau das, was der Name vermuten lässt, es zeigt - unter anderem - den Fortschritt von Pipes an.

$ pv --progress --eta downloads.tar.bz2 | tar xjf -
[>                                                  ]  2% ETA 0:04:02


Der umgekehrte Weg ist komplexer, weil die Grösse der Daten an das Kommando übergeben werden muss.

$ tar cf - Downloads \
| pv --progress --eta --size $(du -bs Downloads | awk '{print $1}') \
| bzip2 -9 > downloads.tar.bz2
[==============>                                    ] 31% ETA 0:08:42


Weitere sehr gute Beispiele finden sich auf der verlinkten Homepage.