QR-Codes unter Linux erzeugen

QR-Codes sind eine praktische Sache um Informationen schnell mit dem Smartphone einzulesen. Dies können Visitenkarten oder andere Informationen wie URLs sein. Am Markt existieren unzählige Tools um QR-Codes zu erzeugen.

Ein mit qrencode erzeugter QR-Code

Unter Linux können QR-Codes unter anderem einfach mit dem Kommandozeilenwerkzeug qrencode erstellt werden. Nach der Installation mittels:

apt-get install qrencode

kann der erste QR-Code erzeugt werden:

qrencode -o qrcode.png https://seeseekey.net

Die Fehlerkorrekturinformationen in dem QR-Code sind im Normalfall auf niedrig gestellt. Soll der Error Correction Level erhöht werden, so wird hierfür die Option -l genutzt:

qrencode -o qrcode.png -l H https://seeseekey.net

Bei den gewählten Option ist die erzeugte PNG-Datei in etwa 111×111 Pixel groß. Mithilfe des Parameters -s kann die Größe des erzeugten QR-Codes eingestellt werden:

qrencode -o qrcode.png -l H -s 24 https://seeseekey.net

Bei der Option gilt, je größer die Zahl desto größer das resultierende Bild. Lizenziert ist qrencode unter der GPL in Version 2 und damit freie Software. Die offizielle Seite des Projektes ist unter fukuchi.org/works/qrencode/ zu finden.

Selfhosting komplett überarbeitet

In den letzten Monaten überarbeitete ich mein Buch Selfhosting: Server aufsetzen und betreiben. Wie der Name es andeutet, handelt das Buch vom Betrieb eines eigenen Servers. Im Grunde geht es darum einen Server und seine Dienste aufzusetzen und zu betreiben. Als Betriebssystem wird Ubuntu 18.04 LTS genutzt. Die erste Version erschien im Juli 2015, was mittlerweile knapp vier Jahre her ist. Unter anderem deswegen wurde das Buch komplett überarbeitet.

Der Umfang des Buches hat um 65 Prozent, gegenüber der ersten Version zugenommen. Neben der kompletten Umstellung auf Ubuntu 18.04 LTS wurden viele weitere Themen in das Buch aufgenommen, so wird nun detailliert auf die Erzeugung von Zertifikaten mittels Let’s Encrypt eingegangen, es wird die Aktualisierung des Servers oder die Nutzung von MariaDB genauer beleuchtet und es wurde auf viele weitere Themen genauer und umfangreicher eingegangen.

Die neue Version von Selfhosting ist nun verfügbar

Nach einer kurzen Einleitung behandelt das Buch die Beschaffung eines Servers, die anschließende Installation und Grundeinrichtung. Dazwischen werden benötigte Linux-Grundlagen vermittelt. Nach der Grundeinrichtung werden speziellere Setups, wie Virtualisierung mittels KVM und verschlüsselte Server, beschrieben. Anschließend geht es an die Einrichtung unterschiedlichster Servertypen, wie Mail-, Game- oder Webserver. Neben diesen werden weitere Dienste wie Git und XMPP besprochen. In den weiteren Abschnitten des Buches wird auf Themen wie das Backup von Servern, der Sicherheit, Wartung und Verwaltung derselben eingegangen.

Erhältlich ist das Buch unter anderem bei Amazon, Beam, Google Play, eBook.de und iTunes. Bei den meisten Anbietern, wird das Buch, wenn es bereits gekauft wurde, automatisch aktualisiert. Weitere Informationen über das Buch befinden sich auf der entsprechenden Seite.

EXIF-Informationen aus Bildern unter Linux entfernen

Die meisten Bilder, welche aus einer Digitalkamera kommen enthalten sogenannte EXIF-Informationen. Die Abkürzung EXIF steht dabei für Exchangeable Image File Format. In diesen Metadaten zum Bild können eine Reihe von Informationen enthalten sein, wie z.B. Datum und Uhrzeit, Koordinaten an welchen das Bild geschossen wurde, die Blendenzahl und viele weitere. Unter Umständen kann es gewünscht sein diese Informationen zu entfernen. Unter Linux, in diesem Fall Ubuntu, kann das mit dem ExifTool erledigt werden. Dazu muss dieses im ersten Schritt installiert werden:

apt install exiftool

Anschließend kann eine einzelne Datei mit dem Befehl:

exiftool -all= image.jpg

bearbeitet werden. Soll das Ganze rekursiv über mehrere Ordner passieren kann folgender Befehl genutzt werden:

cd folder/
find . -iname "*.jpg" -type f -exec exiftool -all= {} \;

Er durchsucht alle Verzeichnisse unterhalb des gewählten Verzeichnisses und entfernt, für jede Datei mit der Endung .jpg, die EXIF-Daten.

Laufenden Prozess zu screen überführen

Das Kommandzeilentool screen ist praktisch, da Prozesse, welche mittels screen gestartet wurden, auch nach dem Logout weiter laufen. Problematisch ist es, wenn ein Prozess ohne screen gestartet wurde und er nachträglich in screen überführt werden soll. Hierfür wird das Tool reptyr benötigt:

apt install reptyr

Mithilfe von reptyr ist es möglich eine Anwendung an ein neues Terminal zu binden. Um nun einen Prozess zu screen zu überführen, muss erst einmal eine neue screen-Instanz gestartet werden:

screen bash

Sobald die Instanz geöffnet wurde, kann der eigentliche Prozess neu zugewiesen werden:

reptyr PID

PID ist hierbei die Prozess-ID, welche sich mittels des ps-Kommandos ermitteln lässt. Alternativ kann dafür auch top oder htop genutzt werden. Damit wurde die Terminalsitzung und mit ihr der laufende Prozess in die screen-Sitzung überführt.

Matomo-Berichte per Cronjob generieren

Matomo ist eine freie Software zur Webanalytik. Früher war Matomo unter dem Namen Piwik bekannt. Wenn Matomo Berichte auf der Weboberfläche anzeigt, so werden diese vorher generiert. Geschieht dies beim Aufruf der Berichte, kann dies, vor allem bei größeren Berichten, zu Problemen führen, da der Server entsprechend viel Zeit für die Erstellung benötigt und dies sich auf die Ladezeit der Weboberfläche auswirkt.

Die Archivierung bei der Anzeige im Browser sollte deaktiviert werden

Als Lösung bietet es sich an die Aufgabe, der Berichterzeugung und Datenaggregierung, an einen Cronjob auszulagern. Dazu muss im ersten Schritt die Crontab-Datei geöffnet werden:

sudo -u www-data crontab -e

Ich die sich öffnende Crontab-Datei wird nun folgende Zeile eingetragen:

*/15 *    * * *   php /var/www/example/matomo/console core:archive > /dev/null

Nachdem die Crontab-Datei gespeichert wurde, wird der Task zur Archivierung und Erstellung der Berichte alle 15 Minuten automatisch gestartet. In den Matomo-Einstellungen unter System -> Allgemeine Einstellungen findet sich der Punkt Archivierungseinstellungen. Hier muss die Archivierung im Browser deaktiviert werden. Damit werden Berichte in Matomo nun per Cronjob erzeugt und beeinflussen die Ladezeiten der Weboberfläche nicht mehr.