Life is Strange
Das nun auf Linux und mit Mesa laufende Adventure hat mir ziemlich gut gefallen.
Life is Strange baut eine sehr starke Atmosphäre auf. Zur Erinnerung: In dem Spiel steuert man in der Third-Person-Ansicht Max. Sie ist eine 18-jährige Studentin, die für ein Stipendium in ihre alte Heimatstadt zurückgekehrt ist. Das hauptsächliche Storyelement ist das zentrale Spielelement: In einer Extremsituation lernt Max gleich zu Anfang des Spiels, dass sie die Zeit zurückdrehen kann. Das Spiel nutzt das für alle möglichen Rätsel, aber auch für Kleinigkeiten. Zum Beispiel kann man ein Gespräch beginnen, darin eine neue Information lernen, daraufhin zurückspulen und die neue Information verwenden.
Hauptsächlich aber trifft man Entscheidungen. Ein Beispiel: Max wird Zeuge, wie ein Schulwächter eine Schülerin heftigst angeht. Sie hat nun zwei Optionen: Schießt sie ein Foto? Das nimmt ihr die Schülerin übel, aber das Foto könnte später nützlich sein. Oder geht sie dazwischen, um der ohnehin leidenden Schülerin den Rücken zu stärken? Dann ist der Schulwächter sauer auf sie.
Die kurzzeitigen Auswirkungen werden direkt gezeigt und Max spricht in ihren Gedanken mit sich selbst und dem Spieler, ist praktisch immer unsicher ob ihrer Entscheidung. Aber was langfristig deswegen passiert, das kann erstmal weder der Spieler noch Max wissen. Verlässt man das momentane Gebiet, dann sind die Entscheidungen fest. Man kann also erstmal ausprobieren, muss sich dann aber doch festlegen. Das macht die Entscheidungen nur noch schwieriger und reizvoller.
Dieses Ausprobieren und das dadurch vom Spieler festlegbare Tempo hilft bei der großartigen Atmosphäre. Gerade in der ersten Episode ist das Spiel voller Melancholie. Die Heimkehr in eine alte Heimat, das Wiederfinden alter Freunde und das Kennenlernen neuer Freunde, das alles in einer Schulatmosphäre und einer uns allen durchs Fernsehen vertrauten amerikanischen Kleinstadt. Zusammen mit der lichtdurchfluteten Grafik, den leicht abstrakten Texturen und der weichen Musik zaubert das Spiel unausweichlich seine eigene Stimmung in das Bewusstsein des Spielers. Sehr deutlich wird das im Intro:
Life is Strange wird dadurch richtig fesselnd. Als Episodenspiel muss das vor der Veröffentlichung der Folgeepisoden grausam gewesen sein.
Vor diesem Hintergrund entfaltet sich dann eine düstere und größere Story. Max rettet Chloe, die sich als eine alte Freundin und dem Storymittelpunkt des Spieles entpuppt. Chloes Freundin Rachel ist verschwunden, schon seit Monaten, ihr Verschwinden aufzuklären wird sehr bald zur Priorität. Gleichzeitig ist die Schule voller sozialem Drama, Life is Strange ist da nicht zimperlich: Selbstmord, Drogen, Sex, Abtreibung - alles wird thematisiert, und das nicht nur abseits der Story. Statt Melancholie wird es gegen Ende mehr eine Horrorstory.
Aber wie alle Geschichten mit Zeitreise ist die Story scheiße, richtig? Ja und Nein. Tatsächlich macht Life is Strange Zeitreisen anfangs vorbildlich. Da sie auf den derzeitigen Standort beschränkt und ihre Auswirkungen das hauptsächliche Spielelement sind gibt es nicht die sonst üblichen Inkonsistenzen. Es ist nicht verwirrend, nicht dumm, der Spieler wird nicht vor den Kopf gestoßen. Und der Rest der Story bleibt der interessante Fokus. Später ändert sich das leider. In späteren Episoden benutzen die Autoren Zeitreisen in größerem Umfang, ab dem Zeitpunkt wird es wirr. Letzten Endes sind eben doch alle Zeitreisegeschichten doof. Außerdem wird später die Geschichte arg düster und das ein ums andere Mal vergreifen sich die Autoren dabei im Ton. Dann ist besonders was Max so von sich gibt nicht mehr nachvollziehbar.
Und ja: Es gibt ein richtiges Ende und es gibt eine finale Entscheidung, die Entscheidungen vorher haben zumindest im kleineren Auswirkungen. Aber im großen ist die Story strikt linear und die Entscheidung am Ende wird dem Spieler durch die Inszenierung nahezu vorgegeben. Life is Strange verliert also später etwas von seiner anfänglichen Klasse.
Der Entwicklerkommentar, der dem Spiel beiliegt, ist nebenbei gesagt nicht gut gemacht. Es sind nur ein paar Videos, die im Hauptmenü ausgewählt werden können, die vorher als mehrere Gigabyte große Dateien heruntergeladen werden müssen. Besser als nichts, das schon, aber kein Vergleich mit der Vielzahl an Interna und Standortkommentaren, die z.B. in Deus Ex: Human Revolution direkt ins Spiel integriert wurden. An solchen Details merkt man, dass das Spiel letzten Endes dann doch keine so tolle Produktion ist.
Aber das soll nicht täuschen: Life ist Strange ist trotz der Kritikpunkte ein gutes Spiel, ein Kleinod. Technisch ist alles einwandfrei, das Spiel läuft mit dem freien Radeon-Treiber unter Linux absolut stabil, ich konnte keine Bugs beobachten. Die Story mag gaga werden, aber man will trotzdem ihre Auflösung wissen, sie kann zudem doch überraschen. Die Figuren werden toll gezeichnet, insbesondere Max und Chloe wachsen einem ans Herz. Spielerisch gibt es am Ende ein paar blöde Schleichpassagen, aber überwiegend ist das Entdecken der Spielwelt, die Zeitmanipulation, das Lösen der Rätsel; sind die Gespräche und die Entscheidungen interessant und spaßig und tragen durch die nicht zu kurze Spielzeit.
5 kostenlose Karten zur Cebit
Mir wurden von Tuxedo fünf Ticketcodes zur Cebit in Hannover gegeben, die ich hier an euch weitergeben will.
© Deutsche Messe
Die Cebit läuft vom 20. bis zum 24. März, die Tickets sind jeweils für alle Veranstaltungstage. Wie immer geht es bei der Messe um Technik, auch digitale. Besonders interessant dürfte dieses Jahr das Gespräch mit Snowden werden. Ansonsten geht es aber in erster Linie um neue Produkte bekannter und weniger bekannter Hersteller. Das ist nicht für jeden, aber für Interessierte kann das schon sehr interessant sein. Das gleiche gilt bestimmt auch für das Open Source Forum.
Hinterlasse einfach einen Kommentar mit ausgefülltem Emailfeld in den Kommentaren. First come, first served.
Edit: Der letzte Code wurde gerade verschickt.
Life is Strange läuft jetzt mit dem freien AMD-Treiber
Vor etwas mehr als einem halben Jahr ist das Adventure Life is Strange für Linux veröffentlicht worden. Inzwischen sind auch die aktuellen freien Treiber soweit, um das Spiel mit einer AMD-Grafikkarte zu spielen – wobei natürlich auch möglich ist, dass zwischenzeitlich das Spiel ebenfalls gepatcht wurde. Denn bei den Hardwareanforderungen auf der Steamseite wird nun sogar die minimale Mesa-Version für AMD-Karten angegeben (11.2). Ich habe aber zwischendurch immer mal wieder getestet, lange funktioniert das Spiel mit Mesa noch nicht.
Die Befürchtungen wegen den verlangten hohen Hardwareanforderungen waren unnötig. Das Spiel läuft auf meiner mittelmäßigen Hardware gut, schnell und stabil. Feral hat wieder mal einen hervorragenden Port abgeliefert.
In Life is Strange folgt man einer 18-jährigen Fotografiestudentin in einer amerikanischen Kleinstadt. Sie kann die Zeit zurückdrehen, und es gibt immer wieder Entscheidungen zu treffen. Das Spiel verrät, wenn die Entscheidungen Auswirkungen auf die Story haben werden, aber nicht welche. Und natürlich löst die erste Episode alleine die Auswirkungen auch nicht auf.
Vor dem Spiel selbst muss ich daher warnen. Es ist ein Adventure, und ich mag keine Adventure. Aber es ist wirklich fesselnd gemacht. Ich halte die Story für klischeegeladen und unglaubwürdig. Doch trotzdem möchte ich nach dieser ersten Episode wissen wie es weitergeht. Die Warnung ist also eine vor der kostenlosen ersten Episode: Nicht spielen, wenn man den Rest nicht kaufen will. Das Komplettpaket der verbliebenen Episoden kostet noch 20€.
Update: Dieses Wochenende sind die übrigen Episoden auf Steam im Sonderangebot, sie kosten komplett 5€. Der Kauf ist wärmstens empfohlen.
Riot: 1 verschlüsselnder Messenger, kein Desaster
Mein letzter Test verschlüsselnder Messenger für Android war nicht sehr erfolgreich. Mit Ring und Tox taugten zwei der drei Kandidaten nicht, und Kontalk ist zwar nett, aber ihm fehlen mir wichtige Funktionen wie Telefonie. In den Kommentaren wurde Riot als Alternative vorgeschlagen, das ich mir inzwischen näher angesehen habe.
Riot ist ein Messenger mit Chaträumen. Wer einmal IRC oder hippe Abwandlungen wie Slack benutzt hat wird sich schnell zurechtfinden. In den Chaträumen sitzen die Nutzer und können miteinander reden. Riot baut hierbau auf Matrix auf, und Matrix wiederum ist ein Protokoll, mit dem solche dezentralisierten Internetanwendungen gebaut werden können. Für den Nutzer ist das aber erstmal ziemlich irrelevant, wenn es denn funktioniert.
Und das tut es. Riot ist schlicht ein guter und vor allem kompletter Messenger. Als IRC-Ersatz wirkt es komplett einwandfrei, die Chaträume funktionieren und es gibt Nutzer. Als privater Messenger wird es ein bisschen komplizierter. Die UI versucht diesen Anwendungsfall zu unterstützen, am Ende landen die zwei Nutzer dann aber doch wieder sichtbar in einem Chatraum. Das macht nichts kaputt, ist nur ein bisschen verwirrend, ein UI-Problem. Dafür funktionierte alles: Das Hinzufügen der Nutzer, das Schreiben, das Empfangen von Nachrichten. Sogar Sprach- und Videotelefonie klappte, stabil, wobei die Auflösung des Videos nicht toll war.
Dabei konnte ich keine Trafficexplosion beobachten. Das ist kein Wunder, denn Matrix ist kein P2P-Protokoll für die Nutzer, sondern ein Protokoll in dem jeder Nutzer seinen eigenen Hauptserver hat (siehe FAQ) und die Server miteinander reden lässt. Für einen mobilen Messenger ist das sehr viel besser, denn P2P ist Gift für trafficbeschränkte Mobilfunknetze und die Akkulaufzeit.
Man kann bei Riot tiefer hinabsteigen, und dann wird es für Poweruser richtig interessant. Denn durch Matrix unterstützt Riot Bridges, um Räume in anderen Netzwerken zu spiegeln – ähnlich wie ich das mit Matterbridge für Gitter-IRC gemacht habe. Für IRC wird das viel verwendet, und wer einen der populären Chaträumen in Matrix beitritt bekommt dann schnell eine Nachricht vom IRC-Kontrollsystem. Von meinen früheren Erfahrungen auf dem Desktop mit dem Projekt, als Riot noch Vector hieß, weiß ich auch, dass sowas recht einfach einzurichten war.
Doch Moment: Verschlüsselung, viele Teilnehmer und verschiedene Protokolle? Wie hat Riot die ganzen Probleme damit aufgelöst? Antwort: Haben sie nicht. Riot unterstützt Verschlüsselung, doch erst seit kurzem. Sie muss manuell für jeden einzelnen Raum angemacht werden. Das ist also nicht der gleiche Sicherheitsstandard, den Ring, Tox, Kontalk und ihre Konkurrenz haben. Das ist sogar schlechter als was Whatsapp behauptet zu tun, Backdoor hin oder her. Für mich ist das ein massiver Kritikpunkt.
Doch insgesamt ist Riot ein ordentlicher Messenger. Bis auf die nicht standardmäßig aktivierte Verschlüsselung gibt es nichts dran auszusetzen. Besonders wenn Gruppen miteinander reden sollen ist es sicher eine gute Wahl. Ich persönlich habe mich inzwischen mit Kontalk und seinen Sprachmemos ziemlich arrangiert, werde Riot aber installiert lassen – es wird für uns vielleicht Skype ersetzen können, das ich ja auch nicht regelmäßig benutze.
Firefox und Electrolysis: Merklich Schneller
Multiprozess-Firefox durch das Electrolysis-Projekt (e10s) ist ein ziemlicher Schritt vorwärts. Bei mir war das bisher nicht aktiviert, weil ich noch Plugins benutze, die nicht explizit als kompatibel markiert sind. Jetzt manuell angemacht ist der Effekt direkt sichtbar. Und er ist stark genug, um eindeutig kein Placebo-Effekt zu sein. Der zusätzliche Prozess beschleunigt den Browser merklich.
Von meinen Plugins scheinen alle kompatibel zu sein, außer einem Plugin namens SmoothWheel, welches das Scrollen weicher machte. Das bewirkte schlicht nichts mehr. Ich bemerkte sonst noch keine Instabilitäten, das kann natürlich noch kommen.
Weil ich solche Plugins benutze, musste ich e10s manuell aktivieren. Wobei das Aktivieren selbst nicht reichte, ich musste zusätzlich die Aktivierung erzwingen. Also in about:config browser.tabs.remote.autostart auf true setzen, und den Eintrag browser.tabs.remote.force-enable als Boolean anlegen und ebenfalls auf true setzen.
Mozilla hat in letzter Zeit für Firefox ein paar fragwürdige Entscheidungen getroffen. Aber Firefox selbst ist immer noch ein guter Browser. Es ist schön zu sehen, wenn er so wie hier (oder wie bei Android) gut verbessert wird.
Shadowrun: Hong Kong - Extended Edition
Der dritte Teil der Shadowrun-Reihe ist der bisher umfangreichste. 35 Stunden habe ich bei Steam verbucht, die reale Spielzeit ist etwas kürzer. Dabei mitgerechnet sind die Inhalte der Extended Edition, die eine Zusatzkampagne nach der Hauptkampagne bietet.
Die Länge allein macht Hongkong weder zu einem anderen noch zu einem besseren Spiel als die Vorgänger, dem kurzen Serienbeginn Returns und dem stark erweiterten Dragonfall. Im Vergleich mit Dragonfall ist die Story etwas weniger interessant, und wie Dragonfall hat es mir zu viele unwichtige Textgespräche zwischen den Missionen. Aber die vielen Detailverbesserungen gegenüber den Vorgängern helfen, Hongkong mindestens so gut wie Dragonfall zu machen. Insbesondere gibt es nochmal mehr Möglichkeiten, Missionen mit den Attributen und in Gesprächen zu lösen. Aber auch die Matrix ist erweitert, Decking dadurch interessanter und für die Missionen sogar noch wichtiger.
Die Story ähnelt den Vorgängern: Eine Figur aus der Vergangenheit ruft den frisch erstellten Charakter zu sich, er habe eine wichtige Mission. Etwas geht schief, das Team wird in den kriminellen Untergrund getrieben. Dort erledigt es Aufträge, während nach und nach die Hauptstory aufgedeckt wird. In der zweiten Kampagne werden dann ein paar übriggebliebene Erzählstränge beendet, wobei die Missionen vom Schwierigkeitsgrad für die stärkeren Charaktere gemacht sind und es nochmal stärkere Waffen gibt. Diese Steigerung macht sie interessant.
Die Grafik hat sich nicht merklich verändert, die Technik war einwandfrei, auch die Unterstützung des freien Radeon-Treibers. Bugs bemerkte ich kaum, nur an etwa drei Stellen kam das Spiel mit meinen Entscheidungen durcheinander. Einmal beispielsweise zeigte sich mein Bruder Duncan traurig über meine Entscheidung, in der Mission zuvor einer Firma zu helfen, wobei ich in Wirklichkeit gegen die Firma entschieden hatte. Die anderen Charaktere hatten das auch richtig widergespiegelt. Das Kampfsystem ist solide, die KI nicht zu dumm, wobei ich geübt durch die beiden Vorgänger in den Kämpfen kaum Probleme hatte. Doch fand ich es wieder schade, in den Missionen nicht alle Begleiter dabeizuhaben. Da mein Hauptcharakter ein Schamane war, erschien es mir z.B. fast nie sinnvoll, den andere Schamanen im Team mitzunehmen. Von ihm bekam ich daher kaum etwas mit. Da war das Attributssystem mit seinen Fähigkeiten eine schönere Konstante, das gefiel mir wieder gut.
Gleiches gilt für das gesamte Spiel: Es ist ein sehr schönes RPG mit Rundenkämpfen, das mir wie seine Vorgänger viel Spaß gemacht hat. Ich hatte gelesen, dass Hongkong deutlich schwächer als Dragonfall sei. Dem war nicht so, eine erfreuliche Überraschung.
Ruby/Sinatra trotz rvm und bundler mit supervisor überwachen
Wie sorgt man dafür, dass ein Serverprozess automatisch neugestartet wird? Man hat einen zweiten Prozess, der ihn neustartet, wenn er abstürzt oder wenn der Server neugestartet wird. Ein solcher Prozessmanager ist Supervisor, der unabhängig vom Initsystem läuft.
Mit supervisord kann man auch Ruby/Sinatra-Webanwendungen überwachen, klar. Allerdings gibt es da eine Reihe von Fallstricken, die von rvm und bundler kommen. Ein simples Skript wird weder die Ruby-Version noch bundler laden können, und dann daran Scheitern. Und benutzt die Anwendung Puma als Webserver, startet sie aber mit rackup, scheitert Supervisor am Beenden des Pumaprozesses.
Das Problem an Supervisor ist, dass die Umgebungsvariablen des Nutzers nicht geladen werden. Daher funktioniert dann rvm und bundler nicht. Zum Glück braucht es nur eine: $HOME
. Die kann man im Startskript setzen, und dann die Hilfsprogramme laden:
#!/bin/bash --login HOME="/home/appuser" echo "init local ruby environment" if which ruby >/dev/null && which gem >/dev/null; then PATH="$(ruby -rubygems -e 'puts Gem.user_dir')/bin:$PATH" fi source /etc/profile.d/rvm.sh export GEM_HOME=$(ruby -e 'print Gem.user_dir') PATH="$(ruby -e 'print Gem.user_dir')/bin:$PATH" echo "starting server" cd /home/appuser/app bundle exec puma --environment production -b unix:///tmp/puma.sock
Achte auch darauf, dass in dem Skript die Anwendung über puma
und nicht über rackup
gestartet wird. Dadurch kann Supervisor den Prozess des Webservers beenden. Ich sah keine Nachteile daran, nur Vorteile, denn Puma kann so auch umfangreich konfiguriert werden. Der hier genutzte Unixsocket zum Beispiel, der dann von Nginx gelesen wird, soll einen kleinen Performancevorteil bieten.
Dies ist die zugehörige Konfigurationsdatei für supervisor, die unter /etc/supervisor/conf.d/ liegt:
[program:webapp] user = appuser command = /home/appuser/bin/start_server.sh autorestart = true stopasgroup = true
Man könnte die Umgebungsvariable auch hier setzen, siehe das Beispiel in der Dokumentation.
Jetzt sollte alles funktionieren, und die Anwendung mit supervisorctl kontrolliert werden können:
supervisorctl restart webapp
Nicht vergessen, supervisor selbst bei einem Reboot ebenfalls neuzustarten, und dafür den Dienst im Initsystem einzutragen.
Star Trek Beyond
Der dritte Teil der Reboot-Filme fühlt sich an, als sei er bei Star Trek angekommen. Vielleicht liegt das daran, dass nicht mehr alles aufgebaut werden muss – ähnlich wie die alten Filme sich auf die Serie verlassen konnten, vertraut der dritte Teil darauf, dass der Zuschauer die Vorgänger geguckt hat. Vielleicht liegt es auch an der klischeehaften Story: Während einer Ruhepause erreicht die Enterprise ein Notruf. In einem Nebel sei ein Schiff abgestürzt, die Crew müsse gerettet werden. Natürlich ist es nicht ganz so, stattdessen entdeckt die Crew der Enterprise eine abzuwendende Bedrohung für die Föderation.
Ich bin bei Star Trek erst mit TNG eingestiegen, die Filme davor habe ich natürlich trotzdem gesehen. Mir ist daher bei den neuen Filmen nie ganz klar, ob ich sie wirklich mögen will, ob mir die Abweichungen gefallen, auch, ob ich alle etwaigen Anspielungen auf alte Folgen mitkriege.
Zwischendurch entwickelt sich der Film dann glatt zu einer Parodie. Auch hat mich der Anfang kalt gelassen, wobei ich gleichzeitig erstaunt war, wie unterbetont dieser erste Weltraumkampf inszeniert wurde. Hat das schon Klasse, oder fehlte da welche? Gegen Ende packte der Film mich aber doch. Da ist so viel Star Trek drin, so viele dann auch gut gemachte Anspielungen (Commodore Paris) und klare Verweise (Ambassador Spock). Man kann die klassische Musik als schnöde Anbiederung ans heutige Publikum empfinden, oder als saucool gemacht Actionszene. Genau wie man die Alienfraukämpferin als zu eindimensionalen Charakter sehen kann, oder als nette Ergänzung zum Sortiment der Charaktere künftiger Filme. Die Zitadell-Raumstation (siehe Mass Effect) ist entweder ein absurder Bruch mit dem Technikstand der Föderation zu diesem Zeitpunkt, oder schön anzusehende Science-Fiction (mit Schwerpunkt auf Fiktion).
Insgesamt also schwierig zu bewerten. Mir persönlich gefiel es, insgesamt. Als Fan darf man Beyond gucken.
Automatisierte Backups mit Borg
Vor etwa einem Jahr entdeckte ich Borg, ein Programm für inkrementelle Offsite-Backups. Der Artikel endete mit:
Bis jetzt bin ich sehr zufrieden damit, und es freut mich sehr, dass diese letzte gravierende Backuplücke endlich gefüllt ist. Nur automatisiert muss das noch werden.
Und klar: Natürlich kam ich nie zum Automatisieren. Ich hatte also Backups, aber hätte bei einem Festplattenausfall trotzdem noch Daten verloren. Auch beispielsweise hier nach den manuellen Backups geschriebene Artikel im Blog. Daran wurde ich jetzt durch den schmerzhaften Datenverlust bei Gitlab wieder erinnert.
Das Automatisieren war schwierig für mich, weil ich es im Kopf nicht richtig aufgedröselt bekam. Das SSH-Passwort zum rsync-Server soll nirgends im Klartext stehen, auch das Passwort für das Backup war mir zu wichtig. Wie also automatisieren? Heute habe ich mir die Zeit genommen das endlich zu lösen, und es ist im Grunde wirklich einfach. Das SSH-Passwort wird durch einen SSH-Key ersetzt, dann kann Borg sich ohne Passworteingabe mit dem rsync.net-Server verbinden. Das Backup-Passwort wird durch ein neues und nur dafür generiertes ersetzt. Dann kann das mit ins Backup-Skript, denn wer das liest hat sowieso schon Zugriff zu allen damit geschützten Daten. Im Detail ging es also so:
1. SSH-Key für Login aktivieren
Rsync hat eine Anleitung dafür, aber bei jedem anderen Borg-Server geht das genauso. Mein Desktop hat schon einen Key, auf dem Server musste noch einer erstellt werden:
ssh-keygen -t rsa
Zuerst schaltete ich meine Hauptmaschine auf dem Server frei:
scp ~/.ssh/id_rsa.pub USER@SERVER:.ssh/authorized_keys
Ist dort schon ein Key gesetzt muss man den zusätzlichen Key, den des Servers, stattdessen hinten anhängen:
cat ~/.ssh/id_rsa.pub | ssh USER@SERVER 'dd of=.ssh/authorized_keys oflag=append conv=notrunc'
2. Backup-Passwort setzen
pass generierte ein neues Passwort. Ich ging davon aus, die bestehenden Backups löschen zu müssen, um das Verschlüsselungspasswort ändern zu können. Doch das stimmt nicht, Borg kann das Passwort ersetzen:
borg change-passphrase USER@SERVER:backup_blog
Ansonsten würde das Passwort bei der Initialisierung abgefragt:
borg init --encryption=repokey USER@SERVER:backup_blog
Skript ergänzen und Cronjob erstellen
Das Backup wird durch ein kleines Skript (borg_backup.sh
) durchgeführt. Das ist immer noch ziemlich identisch zu dem Quickstart-Beispiel. Jetzt musste es um das Passwort ergänzt werden:
#!/bin/sh REPOSITORY=USER@SERVER:backup_blog export BORG_PASSPHRASE='…' ~/borg-env/bin/borg create --stats --compression lzma,2 \ $REPOSITORY::`hostname`-`date +%Y-%m-%d` \ /root \ /var/www/html \ /etc/apache2 \ borg prune -v $REPOSITORY --prefix `hostname`- --keep-weekly=2
Edit: Diese Datei sollte natürlich nur für den Backup-Nutzer lesbar sein, am besten Root, siehe Thomas Kommentar.
Dieses Backup sichert übrigens auch die Datenbank, denn die liegt als SQLite-Datei unter /var/www/html/. Mitsamt den restlichen Daten landet sie dank des finalen Puzzlestücks automatisiert und regelmäßig auf dem Backupserver, dem Cronjob:
# m h dom mon dow command 0 2 * * * /root/borg_backup.sh
Und voila, knapp ein Jahr Verdrängung innerhalb weniger Stunden beendet. Wenn ihr noch keine habt, richtet Backups ein. Borg macht es einfach, und das Borg-Angebot von rsync.net ist nicht teuer. Wobei es dafür natürlich Alternativen gibt, beispielsweise tarsnap, siehe die Kommentare im vorigen Beitrag.