Restic für Backups nutzen

Für Backups nutze ich seit vielen Jahren rsync-time-backup. Allerdings hörte ich in letzter Zeit viel Gutes über die freie Software Restic. Restic selbst wird über GitHub entwickelt und ist unter der BSD-Lizenz in der Zweiklausel-Version lizenziert. Unter Linux und macOS kann Restic einfach über entsprechende Paketmanager installiert werden:

brew install restic

Restic arbeiten mit sogenannten Repositorys. In einem Repository befindet sich das entsprechende Backup mit all seinen Versionen. Um ein solchen Repository anzulegen wird der Befehl:

restic init --repo ./

genutzt. Bei Restic ist jedes Backup automatisch verschlüsselt, sodass bereits beim Anlegen eines Backups ein entsprechendes Passwort vergeben werden muss. Die Daten werden mit AES, bei 256 Bit, verschlüsselt.

restic.net

Danach kann theoretisch mit dem ersten Backup begonnen werden:

restic -r /Volumes/Volume/ResticRepository backup /Users/User

In diesem Fall würde der Ordner /Users/User/ in das Restic-Repository gesichert. Bevor das Backup startet, muss das entsprechende Passwort des Repositorys eingegeben werden. Anschließend wird der Nutzer über den Fortschritt des Prozesses informiert:

repository 567f35fa opened successfully, password is correct
created new cache in /Users/User/Library/Caches/restic
[0:09] 10 files 4.296 MiB, total 451 files 224.551 MiB, 0 errors
/Users/User/System/btrfstune
/Users/User/System/busybox
...

Nach dem Abschluss des Backups erscheint eine entsprechende Meldung im Terminal:

Files:          25 new,     0 changed,     0 unmodified
Dirs:            2 new,     0 changed,     0 unmodified
Added to the repo: 616.694 KiB

processed 25 files, 615.493 KiB in 0:00
snapshot 6c0d7af6 saved

Nun verfügt der Nutzer über ein Backup Repository mit einem bzw. mehreren Snapshots. Die angelegten Snapshots können über dem Befehl:

restic -r /Volumes/Volume/ResticRepository snapshots

angezeigt werden. Der Nutzer erhält eine entsprechende Ausgabe im Terminal:

repository fd5947c7 opened successfully, password is correct
ID        Time                 Host        Tags        Paths
------------------------------------------------------------------------------
6c0d7af6  2020-01-05 10:09:15  Earth.local             /Users/User/System
31d3160f  2020-01-05 10:11:30  Earth.local             /Users/User/System
38d6cbca  2020-01-05 10:15:09  Earth.local             /Users/User/System
ea96fa22  2020-01-05 10:15:20  Earth.local             /Users/User/System
------------------------------------------------------------------------------
4 snapshots

Das beste Backup nutzt nichts, wenn es nicht wiederhergestellt werden kann. Dazu wird die Option restore genutzt:

restic -r /Volumes/Volume/ResticRepository restore 38d6cbca --target /Users/User/System

Anschließend wird der gewünschte Snapshop wieder hergestellt:

repository fd5947c7 opened successfully, password is correct
restoring > to /Users/User/System

Soll anstatt eines bestimmten Snapshot der letzte Snapshot wiederhergestellt werden so wird anstatt einer Snapshot-ID einfach latest als Wert angegeben. Soll nur eine einzelne Datei wiederhergestellt werden, ist das komplette zurückspielen eines Backup eher suboptimal. Für einen solchen Fall können die Snapshots im Dateisystem gemountet werden.

restic -r /Volumes/Volume/ResticRepository mount /Volumes/Volume/ResticRepositoryMounted

Anschließend wird das Repository im Dateisystem unter dem angegebenen Mountpoint eingebunden:

repository fd5947c7 opened successfully, password is correct
Now serving the repository at /Volumes/Volume/ResticRepositoryMounted
When finished, quit with Ctrl-c or umount the mountpoint.

Im Gegensatz zu den Befehlen zur Wiederherstellung des Backups muss beim Mounten keine Snapshot-ID angegeben werden. In der gemounteten Struktur werden stattdessen alle Snapshots angezeigt. Die gewünschte Datei zur Wiederherstellung kann somit gesucht und wiederhergestellt werden.

Beim Backup sollen in vielen Fällen bestimmte Dateien nicht gesichert werden. Dies können z. B. temporäre Dateien oder Caches sein. Um diese Datei vom Backup auszuschließen, kann ein sogenanntes Exclude File genutzt werden:

restic -r /Volumes/Volume/ResticRepository backup /Users/User/System --exclude-file="/Users/User/excludes.txt"

Eine solche Datei könnte z. B. wie folgt aussehen:

+ /etc/
+ /home/
+ /root/
+ /srv/
+ /usr/local/
+ /var/

- /*
- /var/cache/*
- /var/lib/lxcfs/*
- /var/log/*
- /var/tmp/*

Neben diesen Basisfunktionalitäten, verfügt Restic über weitere Funktionen, so z. B. zum Löschen alter Snapshots nach bestimmten Regeln. Alles in allem wirkt Restic für mich wie eine durchdachte Backup-Lösung, deren Nutzung durchaus ins Auge gefasst werden kann.

Einfacher HTTP-Server unter Python 3

Wer auf die Schnelle eine Webserver benötigt, kann hierfür unter anderem Python nutzen. Dazu muss aus der Python 3-Installation das entsprechende Modul gestartet werden:

python -m http.server

Damit wird ein lokaler HTTP-Server gestartet, welcher auf dem Port 8000 horcht. Soll stattdessen ein anderer Port genutzt werden, so kann der gewünschte Port einfach am Ende angehangen werden:

python -m http.server 7000

In diesem Fall würde der Server auf dem Port 7000 erreichbar sein. Natürlich sollte diese schnelle Lösung nicht für den produktiven Betrieb genutzt werden.

Screenshot- und Videofunktionen unter Windows 10

Unter Windows kann mit der Druck-Taste ein Screenshot erstellt werden. Bei der Nutzung von Alt + Druck wird nur ein Screenshot des aktiven Fensters erstellt. Neben dieses Basisfunktionalitäten existieren mittlerweile weitere Möglichkeiten um Screenshots und Videos unter Windows zu erstellen. Nach einem Druck der Tastenkombination Windows + Shift + S können Ausschnitte des Bildschirms ausgewählt und in der Zwischenablage gespeichert werden.

Nach einem Druck auf Windows + G erscheint das Game DVR

Daneben existiert unter Windows 10 eine Möglichkeit einfach und schnell Videos aufzuzeichnen. Dazu kann mittels der Tastenkombination Windows + G das sogenannte Game DVR geöffnet werden. In diesem ist es möglich Videos von Anwendungen oder dem ganzen Bildschirm aufzunehmen. Neben der Aufnahme von Video kann hierbei auch zusätzliches Audio aufgenommen werden. Alles in allem machen die integrierten Funktionen die Nutzung von Drittanbietertools in den meisten Fällen obsolet.

Erste Langzeiterfahrungen mit Stadia

Seit dem Launch von Stadia im November 2019, nutze ich Stadia. Zeit ein kleines Resümee zu ziehen. War ich vor dem ersten Ausprobieren etwas skeptisch, ob das Konzept überhaupt aufgeht, hat sich die Skepsis nach den ersten Minuten in einem Stadia-Spiel erledigt. Am Anfang liefert Google ein Minimum Viable Product, kurz MVP. Der Spieler konnte Stadia nutzen und Spiele spielen.

Die Oberfläche von Stadia unter Chrome

Preislich konnten die Abonnenten von Stadia Pro von den Angeboten profitieren und so viele Spiele günstiger erwerben. Daneben wurden pro Monat zwei Spiele für Abonnenten angeboten, die diese kostenlos spielen können, indem sie die Spiele einmalig zu ihrem Account hinzufügen. Im Laufe der letzten Wochen sind einige neue Features und auch neue Spiele hinzugekommen. So können neue Spiele nicht nur über die App, sondern mittlerweile auch über den Browser gekauft werden.

Ich nutze Stadia meist, in Verbindung mit dem Stadia-Controller und Chromecast. An sich ist mir aufgefallen das ich viel häufiger spiele. Den Controller anschalten, das Spiel auswählen und schon geht es los. Der ganze Vorgang nimmt weniger als drei Minuten in Anspruch. Auch das keine aktuelle Hardware zum Spielen benötigt wird, ist sehr angenehm. Am Fernseher kommt beim Spielen entsprechendes Konsolen-Feeling auf.

Auch Features wie Stream Connect sind nett. Bei diesem wird die Sicht eines anderes Spielers eingeblendet. Genutzt wird dies aktuell beim Tom Clancys Ghost Recon Breakpoint. Wer hier mit mehreren Spielern spielt, sieht, über ein kleines eingeblendetes Fenster, die Sicht der anderen Spieler. Taktische Absprachen im Rahmen des Spieles sind so viel einfacher möglich.

Ab und an kommt das Gefühl auf, dass je belasteter das Internet ist, z.B. durch Feiertage oder das Spielen an Stunden, an denen viele Menschen Stadia nutzen, sich kleinere Artefakte in den Stream schleichen. Sicherlich gibt es noch die eine oder andere Baustelle bei Stadia, aber bisher scheint Google bemüht, diese Stück für Stück zu beseitigen. Auch die Spieleauswahl wird dieses Jahr erheblich erweitert. Neben einigen Exklusivtiteln sollen im Laufe des Jahres knapp 120 Titel für Stadia erscheinen.

IntelliJ IDEA kompiliert über Maven

Normalerweise kompiliert die Java-IDE IntelliJ IDEA den Quelltext sobald, der Build-Vorgang gestartet wird. Allerdings kann es vorkommen das stattdessen jedes Mal der Kompiliervorgang über Maven angestoßen wird. Verantwortlich hierfür ist eine Einstellung der IDE.

Nachdem die Option deaktiviert wurde, kompilierte die IDE den Quellcode wieder

Zu finden ist diese Einstellung im Einstellungsdialog unter dem Punkt Build, Execution, Deployment -> Build Tools -> Maven- Runner. Dort existiert der Punkt Delegate IDE build/run actions to Maven. Wird dieser Punkt deaktiviert, ist die IDE wieder für die Kompilierung und den Build-Prozess verantwortlich.