Automatische Backups

Frost sichert nach Zeitplan und nutzt dafür den Zeitplaner deines Betriebssystems. Zwischen zwei Backups läuft nichts im Hintergrund.

#Den Zeitplan ändern

frost init fragt, wie oft gesichert werden soll. Um das später zu ändern:

frost config set schedule.every 6h

Zur Auswahl stehen hourly, 2h, 3h, 4h, 6h, 8h, 12h, daily und weekly. Standard ist daily.

Um festzulegen, wann Backups laufen, gib eine Uhrzeit im 24-Stunden-Format an und für wöchentliche Backups den Tag:

frost config set schedule.time 09:30
frost config set schedule.day friday

Standard sind 15:00 und sunday. Um automatische Backups aus- oder wieder einzuschalten:

frost config set schedule.enabled false
frost config set schedule.enabled true

Jede Änderung aktualisiert den geplanten Auftrag sofort. Unter macOS und Windows wird eine Änderung während eines geplanten Backups übernommen, sobald dieses fertig ist. Bearbeitest du config.toml selbst, aktualisiert der nächste Frost-Befehl den Auftrag.

#Wann Backups laufen

Backups laufen zur Uhrzeit aus schedule.time, in der Ortszeit deines Computers:

schedule.every Sichert
daily Jeden Tag zu dieser Uhrzeit
weekly Jede Woche am Tag aus schedule.day, zu dieser Uhrzeit
2h bis 12h Zu dieser Uhrzeit und in jedem Intervall davor und danach. 6h ab 15:00 läuft um 03:00, 09:00, 15:00 und 21:00
hourly Jede Stunde, zu den Minuten dieser Uhrzeit

systemd startet jeden Lauf zufällig bis zu 5 Minuten später.

#Verpasste Backups

War dein Computer aus oder im Ruhezustand, als ein Backup fällig war, sichert Frost, sobald er wieder da ist. Egal wie viele Backups er verpasst hat, Frost sichert einmal.

Zeitplaner Startet ein verpasstes Backup
launchd (macOS) Wenn dein Mac aufwacht, oder wenn du dich anmeldest, nachdem er aus war
systemd (Linux) Wenn dein Computer aufwacht oder startet, oder wenn du dich anmeldest, falls Lingering aus ist
Aufgabenplanung (Windows) Sobald es geht, wenn dein Computer wieder da ist und du angemeldet bist
cron (Linux) Innerhalb von 15 Minuten, nachdem dein Computer wieder da ist

Mit cron prüft Frost alle 15 Minuten und sichert nur, wenn ein Backup fällig ist oder verpasst wurde. Für eine Zeit, die schon abgedeckt ist, ob durch ein geplantes Backup oder eins, das du selbst gestartet hast, gibt es kein zweites Backup.

Um verpasste Backups stattdessen zu überspringen, damit Frost nur pünktlich sichert:

frost config set schedule.catch_up false

Ein geplantes Backup, das startet, bevor dein Netzwerk wieder da ist oder ein Laufwerk oder eine Freigabe eingehängt ist, versucht es etwa 5 Minuten lang erneut. Bei einem lokalen Laufwerk muss das Laufwerk angeschlossen sein, wenn das Backup läuft. Eigener Server meldet sich mit dem eigenen SSH-Schlüssel von Frost an und funktioniert deshalb ohne dich. Läuft gerade ein anderes Backup, wartet es, bis dieses fertig ist.

Unter Windows laufen geplante Backups nur, solange du angemeldet bist. Sie starten nicht im Akkubetrieb und brechen ab, wenn du den Computer vom Strom trennst. Unter macOS und mit systemd laufen geplante Backups mit niedriger Priorität, damit sie deinen Computer nicht ausbremsen.

#Der geplante Auftrag

System Zeitplaner Auftrag
macOS launchd ~/Library/LaunchAgents/io.github.whatithasisandalwayswillbe.frost.plist
Linux mit systemd systemd-Benutzertimer ~/.config/systemd/user/frost-backup.service und frost-backup.timer
Linux ohne systemd cron Eine mit # frost-backup markierte Zeile in deiner crontab
Windows Aufgabenplanung Eine Aufgabe namens frost backup

Der Auftrag führt frost backup mit den Konfigurations- und Cache-Ordnern aus, die beim Anlegen galten. Wenn du diese Ordner änderst, starte frost init erneut.

Unter macOS erscheint der Auftrag in Systemeinstellungen > Allgemein > Anmeldeobjekte & Erweiterungen (System Settings > General > Login Items & Extensions) als Node.js Foundation, der Herausgeber der Laufzeitumgebung, die Frost mitbringt. Schaltest du ihn dort aus, stoppen die geplanten Backups, und frost status meldet den Auftrag als fehlend. Um geplante Backups anzuhalten, nimm lieber frost config set schedule.enabled false.

Mit systemd versucht Frost, Lingering für deinen Benutzer einzuschalten (loginctl enable-linger), wenn es bestätigen kann, dass Lingering aus ist. Damit laufen Backups auch, wenn du abgemeldet bist. Kann Frost Lingering nicht einschalten, laufen nach dem Abmelden möglicherweise keine Backups mehr. Beim Entfernen des Timers schaltet Frost Lingering nur aus, wenn es aufgezeichnet hat, dass es Lingering eingeschaltet hat.

#Protokolle

Zeitplaner Wo das Protokoll landet
launchd, cron und Aufgabenplanung frost.log im Cache-Ordner von Frost. Siehe Dateien und Ordner
systemd Im Journal. Lies es mit journalctl --user -u frost-backup

Ein Protokoll über 1 MiB wird vor dem nächsten Lauf geleert. frost status zeigt außerdem, ob das letzte Backup geklappt hat.

#Wenn der Auftrag verschwindet

Wird der Auftrag gelöscht oder ausgeschaltet, meldet frost status „scheduled job is missing“ (der geplante Auftrag fehlt). Stell ihn so wieder her:

frost config set schedule.enabled true