Backup der VMs im laufenden Betrieb mit libvirt

Mit libvirt bzw. deren Kommandozeilen-Interface virsh kann ein Backup der VMs im laufenden Betrieb durchgeführt werden. Das nachfolgende Script stellt ein Grundgerüst, angeregt durch einen Artikel von Christian Rößner, für ein Backup nach der folgenden Methode zur Verfügung:

Es wird zuerst ein Snapshot aller Volumes einer VM angelegt. Dadurch besteht jedes Volume aus (mindestens) zwei Dateien: eine Datei mit den originalen Daten und eine zweite Datei, welche alle Änderungen gegenüber dem Originalvolume ab dem Erstellen des Snapshots enthält. Das Originalvolume wird bei aktivem Snapshot nicht mehr beschrieben, es kann nun problemlos gesichert werden. Zum Kopieren kann “cp -f –sparse=always …” oder, sofern verfügbar, “rsync –sparse …” zum Einsatz kommen. Beide Kommandos behandeln freien Platz in den Volumes optimal, rsync ist jedoch um einiges schneller, wenn im Backup-Verzeichnis bereits vom vorherigen Backup schon die gleiche Datei vorhanden ist, da dann nur die Änderungen kopiert werden. Anschließend werden mit einem sogenannten Blockcommit die im Snapshot als Änderungen geschriebene Blöcke in das Originalvolume wieder eingearbeitet. Das alles kann im laufenden Betrieb vom Host der VMs aus durchgeführt werden.

[Mehr]
Backup  KVM  libvirt  Linux  OSS 

Seitenumbruch in WordPress

Beim Schreiben von längeren Artikeln ist es hilfreich, den Inhalt mit einem Seitenumbruch auf mehrere Seiten aufzuteilen. Das verhindert auf der einen Seite ein endloses Scrollen durch einen langen Text und auf der anderen Seite wird damit auch die Absprungrate gesenkt, da zum Lesen des ganzen Artikels mindestens eine weitere Seite des Artikels angezeigt werden muss.

WordPress beinhaltet dieses Feature bereits. Die Toolbar des WordPress-Editors enhält dazu leider keinen entsprechenden Button, jedoch kann man durch Eingabe von im Textmodus des Editors einen Seitenumbruch einfügen. Im visuellen Modus drückt man dazu die Tastenkombination ++.

[Mehr]

Seafile: Offene Ports schließen

Seit Seafile 4.3 können nun auch die bisher nach außen offenen Ports geschlossen werden. Über einen Proxy (z.B. Apache oder Nginx) waren sie schon früher nicht erforderlich, aber leider nicht abstellbar. Folgende Änderungen müssen in den angegebenen Datein durchgeführt werden:

ccnet/ccnet.conf:

[Network]
#PORT = 10001

seafile-data/seafile.conf:

[network]
#port = 12001
Linux  OSS  Seafile 

Bash-Scripte gegen gleichzeitiges Ausführen absichern

Oft darf von einem Bash Script nur eine Instanz laufen. Beispiele sind ein Backup oder ein Datei-Transfers, welche bei gleichzeitigem Lauf der selben Scripte evtl. nicht korrekt durchgeführt würden. Mit einfachen bash-Mitteln lässt sich dies jedoch verhindern.

Ganz einfach könnte man auf das Vorhandensein einer Datei testen und sie anlegen, falls sie nicht existiert. Allerdings hätte man sich damit auch eine sogenannte RaceCondition geschaffen, der Vorgang zwischen Test und Anlegen ist nicht atomar. Ein nicht funktionierendes Beispiel:

[Mehr]
bash  Linux  OSS 

Munin: Optimierung der Festplatten-IOs

Munin wird dazu verwendet, Laufzeitwerte über verschiedene Dienste oder Rechner zu sammeln und diese statistisch in Grafiken auf einer eigenen Webseite aufzubereiten. Bei Über- oder Unterschreiten eines Grenzwertes können entsprechende E-Mails versenden. Die gesammelten Daten werden rollierend in RRDs (Robin-Round-Database) festgehalten.

In der Standardkonfiguration wird in den meisten RRDs nur jeweils ein Wert gespeichert. Das ergibt z.B. bei 10 Hosts á 20 zu speichernden Werten 200 RRDs, die von Munin alle 5 Minuten (dem Standard-Abfrageintervall) fast gleichzeitig geschrieben werden. Diese Häufung von IOs, zumal sie nicht gestreckt über den gesamten Zeitraum sondern punktuell auftritt, kann für große Installationen schnell zum Problem werden. Im Folgenden wird eine Methode vorgestellt, wie diese Festplatten-Last um den Faktor 10 gesenkt werden kann.

[Mehr]
Linux  Munin  Nginx  OSS 

Let’s Encrypt: Erinnerung vor Zertifikatablauf

Die von Let’s Encrypt kostenlos erhältlichen Zertifikate sind aktuell 90 Tage gültig. Bei vielen Zertifikaten, so z.B. bei vielen Subdomains mit eigenen Zertifikaten, fällt der Überblick schwer, wann welches Zertifikat in Kürze abläuft und erneuert werden muss. Eine automatische Erinnerung muss her.

Eine Methode, um automatisiert alle Zertifikate auf ihren bevorstehenden Ablauf zu testen, kann mit dem folgenden Bash-Script realisiert werden.

[Mehr]

Let’s Encrypt, Nginx und viele Hosts

Mit dem Service von Let’s Encrypt steht die Möglichkeit zur Verfügung, kostenlos Zertifikate für Webserver zu erhalten um die Webseite per HTTPS, also verschlüsselt, zugänglich zu machen. Für den Webserver Apache kann das Zertifikat automatisch erzeugt, signiert und installiert werden. Für Nginx ist in der Let’s Encrypt-Installation zwar ein Modul enthalten, dieses ist nach eigenen Angaben jedoch noch nicht für den produktiven Einsatz ausgelegt.

[Mehr]

Speicherort der Nemo-Lesezeichen

Da ich es immer wieder vergesse: die Nemo-Lesezeichen werden in ~/.config/gtk-3.0/bookmarks gespeichert. Das ist eine normale Textdatei, die auch manuell bearbeitet werden kann. Hilfreich, wenn man viele Lesezeichen gleichzeitig aufnehmen will.

GTK  Linux  Nemo  OSS 

Größe von Verzeichnissen: ncdu

Auf der Linux-Kommandozeile bzw. in der Shell benutzt man du, um sich die Größe von Verzeichnissen anzeigen zu lassen. Etwas komfortabler geht das mit ncdu. Das Programm verwendet ncurses, es läßt sich dadurch einfach mit den Cursortasten durch die Verzeichnisstruktur navigieren.

Screenshot ncdu

Screenshot ncdu

Sofern man auf nicht mehr benötigte Dateien und Verzeichnisse gestoßen ist, kann man diese schnell mit der Taste “d” löschen. Eine Liste weiterer möglicher Tastenbefehle kann mit “?” aufgerufen werden.

[Mehr]
Linux  OSS 

Nützliche Firefox Add-ons

Von Zeit zu Zeit stelle ich an dieser Stelle ein paar der von mir verwendeten Firefox-Addons vor. Manche Addons aus den vorangegangenen Vorstellungen werden leider nicht mehr weiterentwickelt, einige mit praktischen neuen Funktionen sind hinzugekommen.

Hauptaugenmerk bei meiner Auswahl der Addons liegt auf gesteigerter Privatsphäre. Dabei soll die tägliche Benutzung nicht behindern oder das Surfen auf den vielen verschiedenen Webseiten auf keinen Fall extrem komplizierter werden.

[Mehr]