Linkdump 03/2019 ...
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 ...
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:
Danach setzen wir die Variablen für das Übersetzen des Quelltextes.
$ 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.
Nachdem wir neben dem C++ Compiler, Make und CMake die Vorbedingungen installiert haben, kann es auch schon losgehen.
$ 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.
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.
# 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 ...
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 update
Installation des entsprechenden Pakets mit allen Abhängigkeiten
scl --list
heraus.
Eine Shell mit aktivierter Software Collection starten
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++
# sclgcc.bash
COMMAND="gcc $@"
scl enable devtoolset-7 "$COMMAND"
# sclc++.bash
COMMAND="c++ $@"
scl enable devtoolset-7 "$COMMAND"
Setzen der Environment-Variablen, die cmake und make benutzen
$ export CXX=/home/dirk/bin/sclc++.bash
Podcast-Hosting-Software gesucht ...
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 ...
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 ...
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: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 ...
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 ...
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 ...
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 ...
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.
Dann sind mir bei Friendica noch die folgenden Tutorials empfohlen worden. Zur Qualität kann ich leider nichts sagen.
- Mailserver mit Dovecot, Postfix, MySQL und Rspamd unter Debian 9 Stretch
- Mailserver mit Dovecot, Postfix, MySQL und Spamassassin unter Ubuntu 16.04 LTS
- Mailcow
Vielleicht hilft es ja dem Einen oder Anderen.
Weitere Empfehlungen von Lesern des Blogs
Vorsätze 2019 ...
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.