Früher als restlich-systemd-automatisch-backup genannt
einschließlich dieser Top -Mitwirkenden:
Restic ist ein Befehlszeilen-Tool zum richtigen Weg, um Backups zu erstellen. Weitere Erläuterungen finden Sie auf der offiziellen Website. Als Speicher -Backend empfehle ich Backblaze B2 als Restic gut damit, und es ist (zum Zeitpunkt des Schreibens) für den Hobby -Hacker sehr erschwinglich! (Anecdotal: Ich bezahle jeden Monat für meine Full-Systems-Backups in der Regel <1 USD).
Leider ist Restic nicht vorkonfiguriert, um automatisierte Backups zu betreiben, z. B. jeden Tag. Es ist jedoch möglich, dies selbst mit integrierten Tools in Ihrem Betriebssystem und einigen Wrappern einzurichten. Für Linux mit Systemd ist es bequem, Systemd -Timer zu verwenden. Für MacOS-Systeme können wir integrierte Launchagenten verwenden. Für Windows können wir geplante Tasks verwenden. Jedes Betriebssystem mit etwas Cron-ähnlich wird auch funktionieren!
Hier folgt einem Schritt-für-Schritt-Tutorial zum Einrichten mit meinem Beispielskript und Konfigurationen, die Sie für Ihre Anforderungen ändern können.
Beachten Sie, dass Sie die unterstützten Speicher -Backends von Restics verwenden können. Das Setup sollte ähnlich sein, aber Sie müssen andere Konfigurationsvariablen verwenden, um Ihrem Backend der Wahl zu entsprechen.
UPDATE: Dieses Projekt ist abgeschlossen (siehe Argumentation unten). Es werden nur Fehlerbehebungen akzeptiert. Fühlen Sie sich frei zu gabel, wenn Sie weitere Funktionen hinzufügen möchten. Eine Gabelbasis zu sein, war der erste Umfang dieses Projekts!
Der Umfang hierfür ist nicht eine vollwertige Superlösung, die alle Probleme und möglichen Setups löst. Ziel ist es, eine hackbare Codebasis zu sein, damit Sie die perfekte Backup -Lösung nähen können, die Ihren Anforderungen entspricht!
Trotzdem sollte das Projekt nicht über die Box gelangen, minimal sein, aber die Türen für Konfiguration und Erweiterungen durch Benutzer immer noch öffnen.
Um ein anderes Speicher -Backend als B2 zu verwenden, sollten Sie nur einige Einstellungsvariablen im Sicherungsprofil sowie einige restliche Argumente innerhalb restic_backup.sh optimieren müssen.
☝ Beachten Sie, dass das Linux -Setup hier eine Installation an / übernimmt.
Viele Linux -Verteilungen verwenden heutzutage Systemd, was eine gute Unterstützung für den Betrieb von Diensten und geplante Jobs bietet. Wenn Ihre Verteilung nicht auf Systemd ist, lesen Sie stattdessen das Cron -Setup.
TL; Dr. Setup
make : $ sudo make install-systemd$ yay -S restic-automatic-backup-scheduler/etc/restic .restic(1) . Alle Befehle danach gehen davon aus, dass das Profil in der aktuellen Shell bezogen wird. # source /etc/restic/default.env.sh
# restic initOnCalendar in /usr/lib/systemd/system/[email protected] bearbeiten.# systemctl enable --now [email protected]# journalctl -f --lines=50 -u restic-backup@default# restic snapshots# systemctl enable --now [email protected]default.env.sh und verwenden Sie den definierten Profilnamen anstelle von default , um Sicherungen auszuführen oder Timer zu aktivieren. Beachten Sie, dass der Wert nach @ als Parameter funktioniert. # systemctl enable restic-backup@other_profile.timer ☝ Beachten Sie, dass das MacOS -Setup hier eine Homebrew -Installation zum empfohlenen Standardstandort annimmt. Dies ist $HOMEBREW_PREFIX ( brew --prefix ), das /usr/local auf Intel Macs und /opt/homebrew auf Apple Silicon ist.
Launchd ist der moderne integrierte Service Scheduler in MacOS. Es unterstützt Unterstützung für das Ausführen von Diensten als Root (Daemon) oder als normaler Benutzer (Agent). Hier richten wir einen Launchagent ein, der als normaler Benutzer ausgeführt wird, um regelmäßige Sicherungen zu starten.
TL; Dr. Setup
$ brew install erikw/tap/restic-automatic-backup-schedulermake : $ make PREFIX=$(brew --prefix) install-launchagent$(brew --prefix)/etc/restic .restic(1) . Alle Befehle danach gehen davon aus, dass das Profil in der aktuellen Shell bezogen wird. $ source $(brew --prefix)/etc/restic/default.env.sh
$ restic initOnCalendar bearbeiten~/Library/LaunchAgents/homebrew.mxcl.restic-automatic-backup-scheduler.plist .make : ~/Library/LaunchAgents/com.github.erikw.restic-backup.plist .$ brew services start restic-automatic-backup-schedulermake : $ launchctl bootstrap gui/ $UID ~ /Library/LaunchAgents/com.github.erikw.restic-backup.plist
$ launchctl enable gui/ $UID /com.github.erikw.restic-backup
$ launchctl kickstart -p gui/ $UID /com.github.erikw.restic-backup$ make activate-launchagent-backup .$ tail -f ~ /Library/Logs/restic/backup *$ restic snapshots$ brew services start restic-automatic-backup-scheduler-checkmake : $ launchctl bootstrap gui/ $UID ~ /Library/LaunchAgents/com.github.erikw.restic-check.plist
$ launchctl enable gui/ $UID /com.github.erikw.restic-check
$ launchctl kickstart -p gui/ $UID /com.github.erikw.restic-check$ make activate-launchagent-check .Steuern Sie dann den Service mit Homebrew:
$ brew services start restic-automatic-backup-scheduler
$ brew services restart restic-automatic-backup-scheduler
$ brew services stop restic-automatic-backup-scheduler Wenn services start , kann dies an der installierten früheren Version zurückzuführen sein. Entfernen Sie in diesem Fall die vorhandene Version und versuchen Sie es erneut:
$ launchctl bootout gui/ $UID /com.github.erikw.restic-backup
$ brew services start restic-automatic-backup-scheduler Verwenden Sie den Befehl disable , um den Agenten vorübergehend zu pausieren oder ihn zu bootout .
$ launchctl disable gui/$UID/com.github.erikw.restic-backup
$ launchctl bootout gui/$UID/com.github.erikw.restic-backup
Wenn Sie die .plist Datei aktualisiert haben, müssen Sie den bootout gefolgt von bootrstrap ausgeben und Unterbefehle von launchctl enable . Dies garantiert, dass die Datei ordnungsgemäß neu geladen wird.
Windows wird mit einem integrierten Task-Scheduler namens enderTask geliefert. Die Frontend -App ist "Task Scheduler" ( taskschd.msc ) und wir können mit PowerShell -Befehlen eine neue geplante Aufgabe installieren.
Ich beschreibe hier eine von Mai, wie Sie restlich werden können, und dieses Sicherungsskript, das unter Windows funktioniert. Hier habe ich mich entschieden, mit scoop und git-bash zu arbeiten.
TL; Dr. Setup
pwsh sollte installiert werden, um PowerShell in Shebang -Skripten ausführen zu können. powershell> scoop install restic make git pwsh powershell> git-bash
git-bash$ mkdir ~/src && cd ~/src/
git-bash$ git clone https://github.com/erikw/restic-automatic-backup-scheduler.git && cd $(basename "$_" .git) git-bash$ make install-schedtask/etc/restic . git-bash$ vim /etc/restic/*default.env.sh export RESTIC_BACKUP_PATHS= ' /c/Users/<username>/My Documents 'restic(1) . Alle Befehle danach gehen davon aus, dass das Profil in der aktuellen Shell bezogen wird. git-bash$ source /etc/restic/default.env.sh
git-bash$ restic init git-bash$ restic_backup.sh git-bash$ restic snapshotstaskschd.msc )restic_backup und klicken Sie auf "Run".make install-schedtask geöffnet: Schließen Sie und starten Sie es erneut, um sich zu aktualisieren.restic_backup.sh öffnen, und beim nächsten Mal trifft der konfigurierte Zeitplan! Mit taskschd.msc können Sie die geplanten Aufgaben problemlos starten, stoppen, löschen und konfigurieren.
☝ Beachten Sie, dass es da draußen viele verschiedene Cron -Implementierungen gibt und sie alle etwas anders arbeiten.
Jedes System mit einem cron-ähnlichen System kann auch problemlos restliche Backups einrichten. Wenn Ihr System jedoch eines der vorherigen Setups unterstützt, werden diese über Cron empfohlen, da diese mehr Funktionen und Zuverlässigkeit für Ihre Backups bieten.
TL; Dr. Setup
$ sudo make install-cron/etc/cron.d/ fallen zu lassen. Wenn dies nicht der Fall ist, kopieren Sie einfach die entsprechenden Inhalte des installierten /etc/cron.d/restic in Ihr /etc/crontab . # grep " ^@.*restic_ " /etc/cron.d/restic >> /etc/crontab/etc/restic .restic(1) . Alle Befehle danach gehen davon aus, dass das Profil in der aktuellen Shell bezogen wird. # source /etc/restic/default.env.sh
# restic init # restic_backup.sh# restic snapshots/etc/cron.d/restic (oder /etc/crontab ).
Dies ist eine detailliertere Erklärung als die oben genannten TL -Abschnitte, die Ihnen im Setup mehr Verständnis erhalten. Dieser Abschnitt ist allgemeiner, verwendet jedoch Linux + Systemd als Beispiel -Setup.
$ git clone https://github.com/erikw/restic-automatic-backup-scheduler.git && cd $( basename " $_ " .git )Machen Sie in den Quelldateien eine schnelle Suche und Wiederherstellung:
$ find bin etc usr Library ScheduledTask -type f -exec sed -i.bak -e ' s|{{ INSTALL_PREFIX }}||g ' {} ; -exec rm {}.bak ;Und Sie sollten jetzt sehen, dass alle Dateien wie z. B. geändert wurden
- export RESTIC_PASSWORD_FILE="{{ INSTALL_PREFIX }}/etc/restic/pw.txt"
+ export RESTIC_PASSWORD_FILE="/etc/restic/pw.txt" Warum? Die osspezifische TL; DR -Setups vor allem verwenden den Makefile oder einen Paketmanager, um diese Dateien zu installieren. Die Platzhalter -String {{ INSTALL_PREFIX }} befindet sich aus Portabilitätsgründen in den Quelldateien, so dass die Makefile alle verschiedenen Betriebssysteme unterstützen kann. make Benutzer bei der Installation wie PREFIX=/usr/local make install-systemd ein anderes $PREFIX festlegen.
In diesem detaillierten manuellen Setup kopieren wir alle Dateien manuell nach /etc und /bin . Daher müssen wir die Platzhalter -String {{ INSTALL_PREFIX }} in den Quelldateien als ersten Schritt entfernen.
Zusamenfassend:
Sehen Sie zunächst dieses offizielle Backblaze -Tutorial über Restic und befolgen Sie die Anweisungen ("Backblaze -Konto mit B2 aktiviert"), um einen neuen B2 -Bucket zu erstellen. Im Allgemeinen möchten Sie einen privaten Eimer, ohne B2 -Verschlüsselung (Restic macht die Verschlüsselungs -Client -Seite für uns) und ohne die Objektsperrfunktion.
Damit Restic eine Verbindung zu Ihrem Eimer herstellen kann, möchten Sie in den B2 -Einstellungen ein Paar KeyId und ApplicationKey erstellen. Es ist eine gute Idee, ein separates ID und Schlüssel für jeden Eimer zu erstellen, den Sie verwenden, mit begrenztem Lese- und Schreibzugriff auf nur diesen Eimer.
Setzen Sie diese Dateien in /etc/restic/ :
_global.env.sh : Füllen Sie diese Datei mit Ihren globalen Einstellungen einschließlich B2 KeyId & ApplicationKey aus.default.env.sh : Dies ist das Standardprofil. Füllen Sie dies mit Bucket -Namen, Sicherungspfaden und Aufbewahrungsrichtlinie aus. Diese Datei bewertet _global.env.sh und ist somit in sich geschlossen und kann in der Shell bezogen werden, wenn Sie einige manuelle Restic-Befehle ausgeben möchten. Zum Beispiel: $ source /etc/restic/default.env.sh
$ restic snapshots # You don't have to supply all parameters like --repo, as they are now in your environment!pw.txt : Diese Datei sollte das restliche Kennwort (einzelne Zeile) enthalten, mit dem das Repository verschlüsselt wird. Dies ist ein neues Passwort, was bald verwendet wird, wenn das neue Repository initialisiert wird. Es sollte in diesem restlichen Backup -Repository einzigartig sein und wird für die Wiederherstellung erforderlich. Verwenden Sie Ihr B2-Login-Passwort nicht wieder, dies sollte anders sein. Sie können beispielsweise ein 128 -Zeichen -Kennwort erstellen (muss alle in einer Zeile sein) mit: $ openssl rand -base64 128 | tr -d ' n ' > /etc/restic/pw.txtbackup_exclude.txt : Liste der zu ignorierenden Dateimuster. Dadurch wird Ihre Sicherungsgröße und die Geschwindigkeit der Sicherung sehr gepflegt, wenn sie richtig gemacht werden! Jetzt müssen wir das Repository am Remote -Ende initialisieren:
$ sudo -i
# source /etc/restic/default.env.sh
# restic init Setzen Sie diese Datei in /bin :
restic_backup.sh : Ein Skript, das definiert, wie das Backup ausgeführt wird. Die Absicht ist, dass Sie dieses Skript nicht selbst bearbeiten müssen, sondern in der Lage sein sollten, alles aus den Profilen *.env.sh zu steuern. RESTIC -Support schließen Dateien aus. Sie listen Dateimusterpfade auf, um von Ihren Sicherungen auszuschließen, Dateien, die nur Speicherplatz, Sicherungszeit, Netzwerk und Geld belegen. restic_backup.sh ermöglicht einige verschiedene Ausschlussdateien.
/etc/restic/backup_exclude.txt - Global Exklude List. Sie können nur diesen verwenden, wenn Ihr Setup einfach ist. Dies ist in _global.env.sh festgelegt. Wenn Sie eine andere Datei für ein anderes Profil benötigen, können Sie die envvar RESTIC_BACKUP_EXCLUDE_FILE in diesem Profil überschreiben..backup_exclude.txt pro Backup -Pfad. Wenn Sie z. B. ein USB -Festplatten mit/mnt/medium haben und dieser Pfad in $RESTIC_BACKUP_PATHS enthalten ist, können Sie eine Datei /mnt/media/.backup_exclude.txt platzieren und sie wird automatisch aufgegriffen. Das Schöne daran ist, dass die Backup-Pfade in Bezug auf das, was sie ausschließen, in sich geschlossen sind! Sehen Sie nun an, ob die Sicherung selbst funktioniert, indem Sie als Root ausgeführt werden
# source /etc/restic/default.env.sh
# /bin/restic_backup.sh Da die default.env.sh bereits in Ihrer Root -Shell bezogen ist
# restic snapshots Alternativ können Sie die restlichen Schnappschüsse zu einem Verzeichnis set /mnt/restic montieren
# restic mount /mnt/restic
# ls /mnt/restic Alle OS -Setups unterscheiden sich in welchem Task -Scheduler sie verwenden. Als Demonstration schauen wir uns an, wie wir dies mit Systemd unter Linux hier tun können.
Setzen Sie diese Dateien in /etc/systemd/system ein (beachten Sie, dass das Makefile als Paket zu /usr/lib/systemd/system installiert wird).
[email protected] : Ein Dienst, der das Sicherungsskript mit dem angegebenen Profil aufruft. Das Profil wird durch den Wert nach @ beim Ausführen angegeben (siehe unten).[email protected] : Ein Timer, der das frühere Backup jeden Tag startet (das gleiche an Profil hier).OnCalendar -Schlüssel in der Datei.Aktivieren Sie jetzt einfach den Timer mit:
# systemctl enable --now [email protected]Sie können sehen, wann Ihr nächstes Backup ausgeführt wird, mit dem Sie ausgeführt werden sollen
# systemctl list-timers | grep resticund sehen Sie den Status einer derzeit laufenden Sicherung mit:
# systemctl status restic-backupOder starten Sie eine Sicherung manuell:
$ systemctl start restic-backup@defaultSie können den Backup -Stdout -Ausgang live folgen, wenn die Backup ausgeführt wird:
$ journalctl -f -u [email protected] (Überspringen Sie -f um alle Backups zu sehen, die ausgeführt wurden)
Hin und wieder kann es gut sein, eine Gesundheitsprüfung des Remote -Repositorys durchzuführen, um sicherzustellen, dass es nicht korrupt wird. Dies kann mit $ restic check erfolgen.
Es gibt Begleitkripte, Dienst und Timer ( *check* ) bis restic-backup.sh, die die restliche Sicherung auf Fehler überprüfen. Schauen Sie sich das Repo in usr/lib/systemd/system/ und bin/ und kopieren Sie das, was Sie benötigen, an ihre entsprechenden Stellen.
# systemctl enable --now [email protected] 
Um verschiedene Sicherungsjobs mit z. B. unterschiedlichen Eimer, Sicherungspfad des Zeitplans zu haben, machen Sie einfach eine Kopie des default.env.sh und verwenden Sie den definierten Profilnamen anstelle von default in den vorherigen Schritten.
Um eine andere Sicherung zu erstellen und zu verwenden, können Sie:
# cp /etc/restic/default.env.sh /etc/restic/other.env.sh
# vim /etc/restic/other.env.sh # Set backup path, bucket etc.
# source /etc/restic/other.env.sh
# restic_backup.sh Wenn es aktiviert ist, wird nach jeder Sicherung in eine CSV -Protokolldatei die Statistiken geschrieben. Kann aktiviert werden, indem die Env -Variable ( RESTIC_BACKUP_STATS_DIR ) in der globalen Umgebungsdatei oder in einem bestimmten Profil definiert wird.
Die STATS -Protokoll -Protokoll (ebenso wie) Die Desktop -Benachrichtigungen erfolgen in einem zusätzlichen Lauf von restic snapshots und restic diff . Diese Ausführung wird mit den Benachrichtigungen geteilt (kein zusätzlicher Lauf).

Es ist eine gute Idee, Ihre Backups aufzuhalten, um sicherzustellen, dass sie nicht viel Größe erhöhen und hohe Kosten entstehen. Es ist jedoch notorisch schwierig, GUI-Benachrichtigungen von einem Nichtbenutzerprozess (z. B. Wurzel) korrekt vorzustellen.
Daher enthält dieses Projekt eine leichte Lösung für Desktop-Benachrichtigungen, die wie folgt funktionieren: Grundsätzlich restic_backup.sh wird eine zusammenfassende Zeile der letzten Sicherung an eine benutzerbesitzende Datei (der Benutzer, der die Desktop-Umgebung Ihres Betriebssystems ausführt) in Fire-and-Forget-Art angehängt. Anschließend hat der Benutzer einen Prozess, der diese liest und jede Zeile als neue Nachricht an die verwendete Desktop -Umgebung weiterleitet.
So setzen Sie Desktop -Benachrichtigungen ein:
$ mkfifo /home/user/.cache/notification-queue/etc/restic/default.sh , set: RESTIC_BACKUP_NOTIFICATION_FILE=/home/user/.cache/notification-queueWir möchten uns bewusst sein, wann die automatische Sicherung fehlschlägt, damit wir es beheben können. Da mein Laptop keinen Mailserver ausführt, habe ich eine Lösung für meinen Laptop eingerichtet, um E -Mails mit Postfix über meine Google Mail zu senden. Befolgen Sie die Anweisungen dort drüben.
Setzen Sie diese Datei in /bin :
systemd-email : Senden Sie E-Mails mit Sendmail (1). Dieses Skript enthält außerdem Auszeiten, um Google Mail-Server nicht zu spammen und mein Konto blockieren zu lassen. Setzen Sie diese Datei in /etc/systemd/system/ :::
[email protected] : Ein Dienst, der Sie per E-Mail benachrichtigen kann, wenn ein Systemd-Dienst fehlschlägt. Bearbeiten Sie die Ziel -E -Mail -Adresse in dieser Datei und ersetzen oder entfernen Sie {{ INSTALL_PREFIX }} gemäß Ihrer Installation. Jetzt bearbeiten /usr/lib/systemd/system/[email protected] und /usr/lib/systemd/system/[email protected] um diesen Servicefehler zu nennen.
OnFailure=status-email-user@%n.service
Verwenden Sie bin/cron_mail : einen Wrapper zum Ausführen von Cron -Jobs, der die Ausgabe des Jobs als E -Mail mit dem Befehl mail (1) sendet. Dadurch wird davon ausgegangen, dass das mail -Programm korrekt im System eingerichtet ist, um E -Mails zu senden.
Um dies zu verwenden, wickeln Sie den Befehl restic script damit in Ihre Cron -Datei ein, wie:
- @midnight root . /etc/restic/default.sh && restic_backup.sh
+ @midnight root . /etc/restic/default.sh && cron_mail restic_backup.shFür einen Laptop kann es sinnvoll sein, keine starken Sicherungen durchzuführen, wenn Sie wie eine gemeinsame Verbindung von Ihrem Mobiltelefon eine gemeinsame Verbindung haben. Um dies zu lösen, können wir einen Systemd -Dienst einrichten, der nur dann im Erfolgszustand steht, wenn eine Verbindung nicht enthält. Dann können wir unseren Sicherungsdienst erkennen, dass er einfach von diesem Service abhängt! Wenn der nicht entzündete Dienst eine unmeterierte Verbindung erkennt, wird er in einen fehlgeschlagenen Zustand gehen. Dann wird unser Backup -Service nicht ausgeführt, da dieser andere Dienst im Erfolgszustand erforderlich ist.
[email protected] und [email protected] damit der neue Dienst im Erfolgszustand steht: Requires=nm-unmetered-connection.service
After=nm-unmetered-connection.service
/etc/systemd/system/ :::nm-unmetered-connection.service : Ein Dienst, der nur dann im Erfolgszustand steht, wenn die Verbindung nicht enthält./bin :nm-unmetered-connection.sh Verbindung. Für diese Skripte muss der Gnome NetworkManager installiert werden (ändern Sie dieses Skript, wenn Ihr System einen anderen Netzwerkmanager hat).# systemctl daemon-reload ☝ Tipp : Alle Schritte, aber die erste kann auf einmal erfolgen, wenn Sie das Makefile verwenden. Setzen Sie $PREFIX nach Bedarf oder lassen Sie leer für die Installation nach / .
sudo bash -c ' export PREFIX=
make build/usr/lib/systemd/system/nm-unmetered-connection.service
install -m 0644 build/usr/lib/systemd/system/nm-unmetered-connection.service $PREFIX/etc/systemd/system
install -m 0555 bin/nm-unmetered-connection.sh /bin
systemctl daemon-reload
' Aus Gründen der Bequemlichkeit gibt es ein restic Wrapper -Skript, das das Laden von Ladeprofilen und das Ausführen von restlichen Geraden erstellt (es muss mit Sudo ausgeführt werden, um die Umgebung zu lesen). Einfach rennen:
sudo resticw WHATEVER (z. B. sudo resticw snapshots ), um das Standardprofil zu verwenden.resticw -p anotherprofile snapshots .restic wie --diff-latest -Option.Nützliche Befehle:
| Befehl | Beschreibung |
|---|---|
resticw snapshots | Listen Sie Backup -Schnappschüsse auf |
resticw diff <snapshotId-1> <snapshotId-2> | Zeigen Sie die Änderungen zwischen Backup -Schnappschüssen |
resticw stats / resticw stats snapshotId ... | Zeigen Sie die Statistiken für das gesamte Repo oder die angegebenen Schnappschüsse |
resticw mount /mnt/restic | Bereiten Sie Ihr Remote -Repository ein |
resticw --diff-latest | Zeigen Sie die neuesten Änderungen der Snapshot: Führen Sie restic diff aus, nachdem Sie die neuesten 2 Snapshots gefunden haben |
Es gibt ein Ziel, alle Dateien (Skripte und Konfigurationen) zu entfernen, die von sudo make install-* installiert wurden. Einfach rennen:
$ sudo make uninstall Der beste Weg, um zu debuggen, was vor sich geht, besteht darin, das Skript restic_backup.sh mit Bashs Trace -Funktion auszuführen. Sie können es aktivieren, indem Sie das Skript mit bash -x ausführen:
$ source /etc/restic/default.env.sh
$ bash -x /bin/restic_backup.sh
Um kleinere Teile des Sicherungsskripts zu debuggen, fügen Sie diese Zeilen oben und unten in den relevanten Code -Teilen ein, z. B.:
set -x
exec 2> /tmp/restic-automatic-backup-scheduler.log
< code to debug >
set +xund dann die Ausgänge wie wie
$ less /tmp/restic-automatic-backup-scheduler.log
$ tail -f /tmp/restic-automatic-backup-scheduler.log # or follow output like this.Makefile ändern, installieren Sie einfach in ein $PREFIX wie $ PREFIX=/tmp/restic-test make install-systemdresticw -Parsers: Wenn Sie jemals das DOC aktualisieren, müssen Sie den automatisch generierten Parser aktualisieren: $ pip install doctopt.sh
$ doctopt.sh usr/local/bin/resticwEine neue Veröffentlichung machen:
$ vi CHANGELOG.md && git commit -am " Update CHANGELOG.md "
$ git tag vX.Y.Z
$ git push && git push --tags