Skip to content

Linkdump 03/2019 ...

Und da ist er wieder, der neue Linkdump.

Irgendwie war das auch nur eine Frage der Zeit, leider gibt es noch keine wirklichen Alternativen, ZFS für Linux bekommt GPL-Probleme.

Nokia klärt über Android-Update-Prozess auf, für mich ist interessant zu sehen, welche Schritte nötig sind, um das Release vorzubereiten.

Wenn man sich einmal von dem "entweder / oder" trennen könnte, eine Mischung wäre super: Wird Homeoffice zur neuen Normalität?.

Datenschutz muss in den Schulunterricht, der neue Bundesdatenschutzbeauftragte scheint einiges verstanden zu haben.

Ja, in ein paar Typen entdecke ich mich auch: Das Abc der Bahnfahrer.

Lehren aus den Doxing-Angriffen, sehr lesenswert, unbedingt anschauen.

Ja, das muss nicht schlecht sein. Vom Arbeiten mit einfachen Textdateien.

Datenbankbackup mit MyDumper unter CentOS 7 ...

centos

Zum Backup meiner Datenbanken benutze ich schon seit Jahren MyDumper und das MyLoader-Tool. Der grosse Vorteil von MyDumper neben der Geschwindigkeit durch Parallelisierung ist, dass alle Datenbanktabellen in einzelnen Dateien vorliegen und so leicht modifiziert werden könnten.

Höhere Geschwindigkeit bedeutet auch, dass man öfter Backups machen kann (bei mir alle vier Stunden).

MyDumper muss selber übersetzt werden, wenn es nicht in der Distribution dabei ist. Den Anfang bildet dass Holen des Quelltextes:

$ git clone https://github.com/maxbube/mydumper.git mydumper.git

Danach setzen wir die Variablen für das Übersetzen des Quelltextes.

$ export CC=/home/dirk/workspace/sclgcc.bash
$ export CXX=/home/dirk/workspace/sclc++.bash
$ export MAKEFLAGS="-j $(lscpu | awk '/^CPU\(s\)/ {print $2}')"

Die ersten beiden Variablen habe ich im gestrigen Artikel erwähnt.

Die MAKEFLAGS sorgen dafür, dass make mit mehreren Threads arbeitet. Ich nehme dafür die Anzahl der CPUs, die mir das System meldet.

$ yum install glib2-devel mysql-devel zlib-devel pcre-devel openssl-devel

Nachdem wir neben dem C++ Compiler, Make und CMake die Vorbedingungen installiert haben, kann es auch schon losgehen.

$ cd /home/dirk/workspace/mydumper.git
$ git clean -dfx
$ cmake . -DMYSQL_LIBRARIES_mariadb:FILEPATH=/usr/lib64/libmariadbclient.a -DWITH_SSL=OFF -DBUILD_DOCS=off
$ make
$ sudo make install

Das "git clean" räumt unter anderem die Reste von alten Übersetzungsversuchen auf. Guckt Euch bitte die Parameter gut an, bevor Ihr das in Repos macht, in denen Ihr Schreibrechte besitzt.

Da auf meinen Servern die aktuelle stabile Version von MariaDB arbeitet und ich ebenfalls den MariaDB-Client installiert habe, muss cmake das auch mitteilen.

Der Backup-User benätigt in der Datenbank "nur" Select-, Reload und Lock Tables Berechtigungen.
CREATE USER 'b2'@'localhost' IDENTIFIED VIA mysql_native_password USING 'kryptisches Passwort';
GRANT SELECT, RELOAD, LOCK TABLES ON *.* TO 'backup'@'localhost' REQUIRE NONE WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;

Nachdem jetzt alles fertig ist, kann das folgende Backupskript seinen Dienst tun.

#!/bin/bash
# db-backup.bash
set -o errexit

BACKUPDB_DIR="/srv/bak/dumps"
DB_USERNAME="backup"
DB_PASSWORD="kryptisches Passwort"
THREADS=$(lscpu | awk '/^CPU\(s\)/ {print $2}')

cd ${BACKUPDB_DIR}

/usr/local/bin/mydumper --user ${DB_USERNAME} --password ${DB_PASSWORD} --threads ${THREADS}

find ${BACKUPDB_DIR} -type d -name 'export*' -mtime +1 -exec xargs rm -r '{}' \+

WICHTIG: Am Ende des Skripts werden alle Backups gelöscht, die älter sind als ein Tag.

Aktueller C-Compiler auf CentOS 7 ...

centos

Spannend, ich hätte schwören können, dass ich das schon einmal im Blog hatte, kann einen entsprechenden Artikel aber leider nicht finden.

Ein Weg, einen aktuellen C-Compiler auf CentOS zu installieren sind die offiziell unterstützten SoftwareCollections, für unseren Fall insbesondere das Developer Toolset 7. Die achte Version gibt es schon für Red Hat Enterprise Linux 7, wird also in den nächsten Wochen auch in CentOS 7 verfügbar sein.

Zuerst werden die Software Collections aktiviert und aktualisiert

$ sudo yum install centos-release-scl
$ sudo yum update

Installation des entsprechenden Pakets mit allen Abhängigkeiten

$ sudo yum install devtoolset-7-gcc-c++
Welche Software Collections installiert sind, bekommt man übrigens mit dem Kommando scl --list heraus.

Eine Shell mit aktivierter Software Collection starten

$ gcc --version | head -1
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-16)

$ scl --list
devtoolset-7

$ scl enable devtoolset-7 bash

$ gcc --version | head -1
gcc (GCC) 7.2.1 20170829 (Red Hat 7.2.1-1)

Neuen Compiler per Default aktivieren

Da man nicht jedes Mal eine neue Shell nutzen möchte, hilft der folgende Weg, das zu verwirklichen.

Wrapper Skripte für GCC und C++

#!/bin/bash
# sclgcc.bash

COMMAND="gcc $@"
scl enable devtoolset-7 "$COMMAND"
#!/bin/bash
# sclc++.bash
COMMAND="c++ $@"
scl enable devtoolset-7 "$COMMAND"

Setzen der Environment-Variablen, die cmake und make benutzen

$ export CC=/home/dirk/bin/sclgcc.bash
$ export CXX=/home/dirk/bin/sclc++.bash

Podcast-Hosting-Software gesucht ...

podcast

Vielleicht könnt Ihr mir helfen.

Momentan bin ich auf der Suche nach einer Podcast-Hosting-Software. Sie sollte folgende Eigenschaften haben:

  • Kein Wordpress, ich habe wirklich keine Ahnung von Wordpress und keine Zeit mich so einzuarbeiten, dass ich es sicher hosten kann und die Plugins zur Verfügung habe, die es meiner Ansicht nach für ein Blog oder einen Podcast braucht.
  • Gerne einen statischen Bloggenerator (am liebsten in Bash, Perl, PHP oder Python).
  • Kommentare sind Pflicht, meinetwegen auch durch eine selbst gehostete Kommentarfunktion.
  • Serverseitig kein Ruby, generell wäre mir eine der Skriptsprachen, in denen ich mich bewegen kann (siehe oben), lieb, aber das ist nicht zwingend.
  • Schön, aber nicht verpflichtend wäre der Podlove-Player.

DeimHart haben wir mit "meiner Blogengine" Serendipity betrieben. Leider ist der Podcast-Support immer noch sehr rudimentär, was der kleinen Zahl an Entwicklern geschuldet ist.

Gutes Markdown schreiben ...

Für einfache Texte nutze ich Markdown als Auszeichnungssprache. Das, was ich brauche, lässt sich dmit sehr gut umsetzen. Wenn es mehr sein müsste, würde ich vermutlich AsciiDoc oder reStructuredText verwenden.

Eigentlich möchte ich Markdown auch im Blog benutzen, aber über dreitausend alte Artikel möchte ich nicht gerne konvertieren.

Markdown hat sich an vielen Stellen als Standard für einfache Texte etabliert, daher lohnt sich die Beschäftigung damit. Die Beschreibung des Standard ist bei Daring Fireball zuf finden. Es gibt auch eine Seite über GitHub Flavored Markdown. Ein einfaches Markdown-Cheatsheet hilft beim Einstieg.

Heute habe ich mit markdownlint für mich vernünftig klingende Regeln für gute Markdown-Texte gefunden.

GPG-Keyserver ...

Bei mir häufen sich die Fälle von Usern, die das Problem haben, dass GPG-Keys, die auf pgp.mit.edu hochgeladen wurden, nicht mit der Welt synchronisiert werden.

Daher ist es vielleicht ratsam, gleich einen Pool von Keyservern zu benutzen.

Ein Beispiel wäre der Verbund von sks-keyservers.net (an denen pgp.mit.edu "eigentlich" auch teilnehmen sollte).

Dazu in die ~/.gnupg/gpg.conf folgenden Keyserver eintragen:

# Ganzer Pool
keyserver hkp://pool.sks-keyservers.net
# Europäischer Pool
keyserver hkp://eu.pool.sks-keyservers.net


Und anschliessend prüfen, ob es funktioniert:
gpg --search-keys dirk@deimeke.net (als Beispiel).

Mehr zu Keyservern findet sich in der Wikipedia.

Linkdump 02/2019 ...

Viel Spass beim Extrakt der letzten Woche.

Beim Start des LibreZoom-Podcast durfte ich ein wenig Starthilfe geben: Wir machen Podcast.

Die Homeoffice-Illusion, tja, es ist nicht alles Gold, was glänzt.

Ja, möchte ich gerne, allerdings bin ich mir unsicher, ob das bei mir wirklich funktioniert: Ihr wollt mehr Bücher lesen, scheitert aber kläglich? So klappt’s garantiert.

Was wir in der Schule leider nicht gelernt haben, dem kann ich als alter Sack nur zustimmen.

Gib XMPP eine Chance ...

Ok, der Titel ist etwas reisserisch.

Seit 2015 benutze ich kein Jabber mehr, gemeint ist natürlich XMPP. Mittlerweile mehren sich aber die Menschen, die gerne via XMPP mit mir in Kontakt treten wollen. Nun gut, dann gebe ich dem ganzen noch eine Chance.

Ihr erreicht mich unter: dirk.deimeke@jabber.systemausfall.org dirk.deimeke@fsfe.org

Ich nutze die folgenden Clients:

  • iOS: ChatSecure
  • Android: Conversations
  • Linux: (Weiss noch nicht, vermutlich Kopete wegen KDE-Integration, ja, ich weiss, Gajim ist der "Platzhirsch").
  • Webbrowser: (Bin gespannt auf Eure Tipps).

Mir gefällt die Idee von Quicksy sehr gut, mal sehen, wohin das führt.

Chemnitzer Linux-Tage ...

Ich freue mich sehr darüber, dass ich in diesem Jahr zum ersten Mal an den Chemnitzer Linux-Tagen teilnehmen kann. Am meisten freue ich mich darüber, viele Menschen persönlich zu treffen, die ich schon sehr lange virtuell "kenne".

Den Weg habe ich immer gescheut, da er nicht in vernüftiger "Art und Weise" mit öffentlichem Verkehr für mich erreichbar ist. Flugzeug ist irgendwie doof und Umsteigezeiten von zehn Minuten bei der deutschen Bahn haben für mich eher die Anmutung einer Abenteuerreise als, dass ich das für entspanntes Reisen halte.

Vermutlich werde ich mit einem Leihwagen anreisen. Das Hotel ist in jedem Fall reserviert.

Selbstverständlich habe ich auch Programmpunkte eingereicht, die ich gerne bestreiten würde. Da ich die Veranstaltung überhaupt nicht kenne, habe ich relativ viele Vorschläge gemacht. Ich bin sehr gespannt, ob etwas von meinen Einreichungen ins Programm passt und angenommen wird. Falls nicht, ist das auch kein Beinbruch, ich freue mich sehr auf deie Menschen dort.

Wenn von meinen Lesern darf ich dort treffen?

Eventuell treffen wir uns am Freitag vor der Veranstaltung auf eins oder mehrere Kalt- oder Heissgetränke.

Linkdump 01/2019 ...

Auch in 2019 möchte ich gerne mit einer lieb gewonnenen Tradition weitermachen.

I absolutely second that: Why you need to use a password manager.

Smartphones: Verdaddeln wir unser Leben? "Verdaddeln" wäre mir zu viel, aber dass wir zu viel Zeit mit dem Smartphone verbringen, glaube ich schon.

Es lohnt sich aus vielen Gründen, einen Account im Fediverse zu besorgen, unabhängig von der Instanz oder Software, die darauf betrieben wird. Eine Woche im Fediverse.

Uberspace in meiner Infrastruktur ...

Da habe ich bei der Beschreibung meiner Infrastruktur doch tatsächlich Uberspace vergessen.

Wenn es Uberspace schon gegeben hätte, bevor ich meinen eigenen root-Server betrieben habe, wäre vermutlich nie auf die Idee gekommen, das selber zu machen.

Etwas unüblich benutze ich Uberspace tatsächlich nur für E-Mails.

Zum Einen laufen dort die Mails des Monitorings auf, es ist nicht sinnvoll Monitoring-Benachrichtigungen an den Server senden zu lassen, der überwacht wird.

Zum Anderen betreibe ich dort eine "very low volume" Mailingliste.

Mailserver-Tutorials ...

Ein Bekannter von mir fragte an Silvester nach Mailserver-Tutorials, ich möchte Euch die Ausbeute nicht vorenthalten.

Das ist das beste Tutorial, das ich persönlich kenne, mein Mailsetup ist nach dem Muster einer deutlich älteren Version des Tutorials aufgebaut worden. Ich setze zwar CentOS ein, aber die Ideen von Christoph sind sehr gut.

ISPmail tutorial

Dann sind mir bei Friendica noch die folgenden Tutorials empfohlen worden. Zur Qualität kann ich leider nichts sagen.

Vielleicht hilft es ja dem Einen oder Anderen.

Weitere Empfehlungen von Lesern des Blogs

Vorsätze 2019 ...

gedanken ... habe ich nicht.

Ich setze mir immer den Vorsatz, keine weiteren Vorsätze zu haben.

Allerdings habe ich Ziele und die sind unabhängig von Silvester oder dem Jahreswechsel. Beim Durchsuchen dieses Blogs ist mir aufgefallen, dass ich das noch nie hier im Blog thematisiert habe. Bis jetzt habe ich das nur in Vorträgen zum Zeitmanagement erwähnt.

Die Idee mit den Zielen ist auch nicht von mir, die habe ich aus dem Buch Zeitmanagement für Systemadministratoren.

Die Idee ist es Ziele zu haben und diese auch aufzuschreiben. Wie wichtig aufschreiben ist, seht Ihr in dieser Infografik. Ziele geben Leitplanken vor und helfen, Chancen zu erkennen, wenn sie sich bieten.

Gemäss Limoncelli ist es sinnvoll, sich Ziele getrennt für Beruf und Privat zu setzen und diese kurz, mittel- und langfristig anzulegen.

So setze ich mir Ziele für 1 Monat, 1 Jahr und 5 Jahre und überarbeite alle Ziele jeden Monat.

Ein berufliches Ziel könnte sein, sich in ein bestimmtes Themengebiet einzuarbeiten oder eine bestimmte Position zu erreichen.

Ein privates Ziel könnte sein, einen bestimmten Sport zu erlernen oder mit einem bestimmten Hobby etwas zu machen.

Mir hilft das sehr.

Wie ich arbeite (Infrastruktur) ...

In 2018 habe ich den Umzug in Richtung verteilter Infrastruktur abgeschlossen und alle Domains migriert.

Server

Schon vor 2018 bin ich von einem physikalischen Server bei Hetzner zu virtuellen Servern bei Netcup gewechselt. Obwohl ich jetzt mit drei virtuellen Servern weniger als für den physikalischen Server zahle, war der Preis nicht das Kriterium für den Wechsel.

Die Festplattenperformance war im Vergleich zu Bekannten, die die gleiche Serverversion eingesetzt haben, einfach unterirdisch schlecht. Und selbst der schnellere Server der Bekannten ist noch einmal in der Festplattenperformance Faktor drei langsamer als die virtuellen Server, beide setzen drehende Festplatten und keine SSDs ein.

Es sind bei mir insgesamt drei viruelle Server des Typs RS 2000 G7 (mit SAS-Platten) im Einsatz, die die folgenden Aufgaben übernehmen:

Spielwiese mit Fedora 29: Auf diesem Server läuft unter anderem Wireguard und eine Taskserver-Instanz. Zusätzlich habe ich dort einige Kommandozeilentools installiert, die man im Internet brauchen kann.

Kommunikationsserver mit CentOS 7.6, PHP 7.2 kommt aus dem Remi-Repository: CentOS setze ich vor allem deswegen ein, weil ich im Betrieb ausschliesslich (neben Solaris) mit Red Hat Enterprise Linux zu tun habe. Auf dem genannten Server läuft neben der Mail-Infrastruktur auch noch Friendica und FreshRSS.

Webserver mit CentOS 7.6, mit PHP 7.1 von Remi: Hier laufen alle Webseiten und zusätzlich noch eine Gitea-Instanz. Als Blogsoftware setze ich immer noch auf Serendipity, Wiki mache ich mit DokuWiki und eine immer grösser werdende Nextcloud-Instanz gibt es hier auch noch. Diesen Server werde ich auf absehbare Zeit erweitern müssen.

Für statische Webseiten setze ich auf die Templates von Templated oder nutze Skeleton als Basis.

Zertifikate kommen von Let's encrpyt mit AcmeFetch, ich überlege auf Certbot umzustellen.

Monitoring

Als Monitoring-Lösung kommt bei mir Bloonix zum Einsatz. Dank Jonny habe ich einen Freiaccount in dem von ihm gehosteten Angebot, wofür ich immer noch sehr dankbar bin.

Ergänzug am 3. Januar 2019: Die Benachrichtigungen des Monitorings landen bei Uberspace. Etwas unüblich benutze ich Uberspace tatsächlich nur für E-Mails. Neben den Benachrichtigungen betreibe ich im Uberspace auch eine wenig genutzte aber für mich wichtige Mailingliste.

DNS

DNS lasse ich bei INWX hosten. Das Konfigurationfrontend gefällt mir so gar nicht, aber die Preise sind in Ordnung und sie bieten nahezu alle Domains an, die es gibt.

Backup

Das Backup aller Server mache ich über eine Storage Box BX40 bei Hetzner und das funktioniert wirklich gut.

Serverbackups laufen alle 30 Minuten mit Borgbackup und Datenbankbackups alle vier Stunden mit MyDumper.

Ende des ersten Quartals des letzten Jahres hat meine Internetverbindung einen Schub bekommen, von 26 MBit/s Download und 6 Mbit/s Upload ging es auf gemessene 343 MBit/s Download und 115 MBit/s Upload. Damit brauchen wir auch kein lokales NAS mehr. Die Rechner bei uns werden ebenfalls mindestens einmal am Tag mit Borgbackup gesichert.

Spielwiesen

Wenn ich lokale Tests mache, setze ich die mit VirtualBox (derzeit in Version 6.0.0) um, insbesondere die Tests für das Buch laufen auch darüber.

Neben anderen virtuellen Maschinen habe ich immer eine Minimalinstallation der Servervarianten von Alpine, CentOS, Debian, Fedora, openSUSE und Ubuntu auf der Platte.

Ein lokales Minishift hätte ich fast vergessen.

Dinge im Internet teste ich mit Droplets auf DigitalOcean, die geben auch sehr viel an die Community zurück und bieten freies Guthaben für Open-Source-Projekte.

Über diesen Link bekommt Ihr 10 Dollar Freiguthaben, wenn Ihr selber Geld einzahlt (mindestens 25 Dollar), wird mir eine Provision gut geschrieben.

Fazit

Ich hoste sehr viel Software selber.

Klar, das kostet Zeit, bietet aber auch sehr viele Freiheiten, die ich nicht mehr missen möchte.