Zum Inhalt springen

Installation unter Linux und macOS

Den Restow-Agent installieren Sie mit einem einzigen Befehl, den Restow für Sie erzeugt. Der Befehl trägt ein einmaliges Token, sodass Sie auf dem Rechner nie Zugangsdaten eintippen.

Auf dem Rechner

  • Linux: systemd, x86_64 oder aarch64, Root-Rechte (sudo), curl sowie sha256sum oder shasum.
  • macOS: macOS 13 (Ventura) oder neuer, Intel oder Apple Silicon, ein Administratorkonto (sudo) und curl.
  • HTTPS zu Restow. Der Rechner muss Ihre Restow-Instanz per HTTPS erreichen. Der Agent verbindet sich nur ausgehend. Ein eingehender Port wird weder gebraucht noch geöffnet.
  • Eine richtige Uhrzeit. Zertifikatsprüfungen scheitern auf einem Rechner, dessen Uhr stark abweicht.
  • Ein vertrauenswürdiges Zertifikat. Der Agent nutzt den Zertifikatsspeicher des Betriebssystems. Verwendet Ihre Instanz ein Zertifikat einer privaten Zertifizierungsstelle, muss diese CA in diesem Speicher liegen oder, unter Linux, in einer Datei, die SSL_CERT_FILE nennt (siehe Proxy und private CA). Der Agent hat dafür keine eigene Einstellung.

In Restow

  • Setzen Sie die öffentliche URL Ihrer Installation in den Einstellungen. Die Adresse im Installationsbefehl stammt daraus. Ist keine gesetzt, nimmt Restow die Adresse Ihres Browsers und warnt Sie, und der Rechner muss genau diese Adresse erreichen können.
  • Verwenden Sie eine https://-Adresse. Die Installationsskripte weisen eine Instanz mit reinem http:// ab. Die Oberfläche warnt Sie vor einer unverschlüsselten Adresse, bevor Sie einen Rechner verbinden, weil das Token und die Geheimnisse des Agents unverschlüsselt übertragen würden.
  1. Öffnen Sie in der Seitenleiste im Abschnitt Server-/Endpoint-Backup die Seite Server oder Clients (oder Agenten, die beide auflistet).
  2. Wählen Sie Neuer Server oder Neuer Client.
  3. Wählen Sie das Betriebssystem: Linux oder macOS. Windows wird als „Geplant“ angezeigt und lässt sich nicht wählen.
  4. Geben Sie dem Rechner optional einen Namen. Er wird in den Listen statt des Hostnamens angezeigt, und Sie können ihn später ändern.
  5. Wählen Sie Installationsbefehl erstellen und kopieren Sie den Befehl.

Das Fenster zeigt, wann sich der Rechner verbunden hat. Sie können es schließen und den Rechner später in der Liste finden.

Der Befehl wird nur einmal angezeigt, weil er das Token enthält. Haben Sie ihn verloren, erstellen Sie einen neuen. Befehle, die noch niemand verwendet hat, stehen unter Offene Anmeldungen, wo Sie sie widerrufen können.

Führen Sie ihn auf dem Rechner aus, den Sie sichern wollen.

Terminal-Fenster
# Linux
curl -fsSL https://<your instance>/install/linux.sh | sudo RESTOW_TOKEN='<token>' sh
# macOS
curl -fsSL https://<your instance>/install/macos.sh | sudo RESTOW_TOKEN='<token>' sh

Restow trägt die Adresse Ihrer Instanz und das Token ein, wenn es Ihnen den Befehl anzeigt.

Das Skript liefert Ihre eigene Instanz aus, mit eingetragener Adresse und Agent-Version.

  1. Es erkennt die CPU-Architektur und lädt restow-agent, restic und SHA256SUMS von <instance>/install/agent/<version>/<os>-<arch>/. Die Dateien kommen von Ihrer Instanz, nicht aus dem Internet.
  2. Es prüft beide Binärdateien gegen SHA256SUMS. Stimmt eine Prüfsumme nicht, wird nichts installiert.
  3. Es installiert /usr/local/bin/restow-agent und /usr/local/lib/restow-agent/restic.
  4. Es installiert und aktiviert den Dienst: die systemd-Unit restow-agent.service unter Linux, den LaunchDaemon com.restowbackup.agent unter macOS.
  5. Es führt restow-agent enroll aus. Das tauscht das Token gegen Zugangsdaten und prüft, dass die Instanz und das Backup-Repository sie annehmen.
  6. Es startet den Dienst und gibt den Status aus.
  • Es ist 24 Stunden gültig und lässt sich einmal verwenden.
  • Restow speichert nur einen SHA-256-Hash davon.
  • Das Skript liest es nur aus der Umgebung. Es wird nie ausgegeben und nie auf die Platte geschrieben.
  • sudo RESTOW_TOKEN=... sh legt das Token in die Prozessliste des Rechners, solange der Befehl läuft. Andere Benutzer auf diesem Rechner könnten es in dieser Zeit sehen. Es verfällt nach der Benutzung, spätestens nach 24 Stunden.
  • Scheitert das Enrollment auf der Serverseite (zum Beispiel weil das Speicherziel nicht erreichbar ist), macht der Server alles rückgängig und gibt das Token wieder frei. Sie können denselben Befehl erneut ausführen. Auch eine ungültige Anfrage (zum Beispiel ein leerer Hostname) verbraucht das Token nicht.

Sie können den Befehl jederzeit erneut ausführen. Er repariert oder aktualisiert die Installation an Ort und Stelle, behält ein vorhandenes Enrollment und installiert nie doppelt. Auf einem Rechner, der schon angemeldet ist, wird das Token nicht gebraucht.

macOS schützt Schreibtisch, Dokumente, Downloads, iCloud Drive und weitere Ordner. Ohne Zugriff überspringt der Agent diese Dateien, das Backup endet als Teilweise, und das Lauf-Protokoll sagt das.

  1. Öffnen Sie System Settings > Privacy & Security > Full Disk Access. Die Bezeichnungen stehen hier englisch. In der deutschen Systemsprache heißen die Einträge entsprechend anders.
  2. Fügen Sie /usr/local/bin/restow-agent hinzu.
  3. Werden danach weiterhin geschützte Ordner gemeldet, fügen Sie zusätzlich /usr/local/lib/restow-agent/restic hinzu.

Das nächste Backup enthält diese Dateien dann.

Auf Macs, die über MDM verwaltet werden, verteilen Sie stattdessen ein Privacy Preferences Policy Control Profil. Es erteilt denselben Zugriff, ohne dass jemand durch die Systemeinstellungen klicken muss.

Auf dem Rechner:

Terminal-Fenster
restow-agent status

Der Befehl zeigt den lokalen Zustand und braucht keine Root-Rechte. --json liefert dasselbe für Skripte. In Restow erscheint der Endpoint in der Liste, und sein Status wechselt nach dem ersten Kontakt auf Online.

Ein frisch angemeldeter Server wartet auf den nächsten geplanten Zeitpunkt. Um das erste Backup sofort zu starten, öffnen Sie den Endpoint in Restow und wählen Jetzt sichern. Der Rechner holt die Anfrage bei seinem nächsten Kontakt ab, meist innerhalb weniger Minuten.

restow-agent enroll Enroll this machine (RESTOW_TOKEN and RESTOW_URL from the environment)
restow-agent run The service main loop (what systemd / launchd execute)
restow-agent status Local state, no root needed (--json for scripts)
restow-agent backup-now Run one backup in the foreground (exit 0 ok, 3 partial, 1 failed)
restow-agent service ... install | start | stop | restart | status
restow-agent uninstall Remove the agent (--yes, --keep-logs)
restow-agent version Version, commit, build date (--short for the number only)

Die Ausgabe des Agents ist englisch. Zur Orientierung: enroll meldet den Rechner an, run ist die Hauptschleife des Dienstes, status zeigt den lokalen Zustand, backup-now führt ein Backup im Vordergrund aus (Exit-Code 0 erfolgreich, 3 teilweise, 1 fehlgeschlagen), service steuert den Dienst, uninstall entfernt den Agent, version zeigt die Version.

  • --debug oder RESTOW_DEBUG=1 schaltet ausführliches Logging ein.
  • enroll --force meldet den Rechner mit einem neuen Token erneut an. Der alte Endpoint bleibt in Restow, bis Sie ihn sperren. Siehe Deinstallation.
  • enroll --allow-insecure-http gibt es nur für die lokale Entwicklung. Die Installationsskripte verweigern es, außer RESTOW_ALLOW_INSECURE_HTTP=1 ist gesetzt, und der Agent gibt jedes Mal eine Warnung aus.
Pfad Inhalt
/usr/local/bin/restow-agent, /usr/local/lib/restow-agent/restic Die Binärdateien. restow-agent.prev ist der vorherige Agent nach einem Update.
/etc/restow-agent/state.json Enrollment: Instanz-URL, Endpoint-ID, Agent-Secret, Repository-URL und -Passwort. Modus 0600.
/var/lib/restow-agent/status.json Laufzeitstatus für restow-agent status. Keine Geheimnisse.
/var/lib/restow-agent/cache Der restic-Cache. Er enthält Metadaten des Repositorys, kann bei großen Repositorys auf einige GB wachsen und darf gelöscht werden.
/var/lib/restow-agent/{tmp,restic-tmp,outbox} Temporäre Restore-Kopien, restic-Optionsdateien und Lauf-Berichte, die noch nicht zugestellt werden konnten.
/var/log/restow-agent/agent.log Das Agent-Log, bei 5 MB rotiert, 3 Dateien bleiben erhalten. Unter Linux steht es auch im Journal. Unter macOS enthält launchd.log Absturzspuren.
/etc/systemd/system/restow-agent.service Die systemd-Unit (Linux).
/Library/LaunchDaemons/com.restowbackup.agent.plist Der LaunchDaemon (macOS).

Der Agent reicht Proxy-Einstellungen und ein privates CA-Bundle weiter, wenn sie in der Umgebung des Dienstes gesetzt sind. Die Variablen heißen HTTPS_PROXY, NO_PROXY und, unter Linux, SSL_CERT_FILE. Unter Linux setzen Sie sie mit einem systemd-Drop-in:

Terminal-Fenster
sudo systemctl edit restow-agent

Tragen Sie zum Beispiel ein:

[Service]
Environment="HTTPS_PROXY=http://proxy.example.com:3128"
Environment="NO_PROXY=localhost,127.0.0.1"
Environment="SSL_CERT_FILE=/etc/ssl/certs/company-ca.pem"

Starten Sie den Dienst danach neu:

Terminal-Fenster
sudo systemctl restart restow-agent

Eine private CA in den Zertifikatsspeicher des Betriebssystems aufzunehmen, ist der einfachere Weg, wenn Sie es können. Dieselben Variablen erreichen auch restic und Ihre Hooks, weil sie auf der kurzen Liste der Variablen stehen, die der Agent weitergibt.