Specify restic repository with fully-qualified domain name. Add service and timer unit definitions for restic backup and restic check to repository.

This commit is contained in:
2026-10-17 22:03:02 -04:00
parent 39a87feaf2
commit a8e118d267
5 changed files with 51 additions and 1 deletions
@@ -16,7 +16,7 @@
# Envvars below will override those in _global.env.sh if present. # Envvars below will override those in _global.env.sh if present.
export RESTIC_REPOSITORY="sftp:sftpuser@Cygnus:/Backup/restic/teal" # *EDIT* fill with your repo name export RESTIC_REPOSITORY="sftp:sftpuser@cygnus.objectbrokers.com:/Backup/restic/teal" # *EDIT* fill with your repo name
# What to backup. Colon-separated paths e.g. to different mountpoints "/home:/mnt/usb_disk". # What to backup. Colon-separated paths e.g. to different mountpoints "/home:/mnt/usb_disk".
# To backup only your home directory, set "/home/your-user" # To backup only your home directory, set "/home/your-user"
@@ -0,0 +1,17 @@
[Unit]
Description=Backup with restic to Backblaze B2
# Email on failure require special setup. See README.md
#OnFailure=status-email-user@%n.service
# Prevent backup on unmetered connection. Needs special setup. See README.md.
#Requires=nm-unmetered-connection.service
#After=nm-unmetered-connection.service
[Service]
Type=simple
Nice=10
# $HOME or $XDG_CACHE_HOME must be set for restic to find /root/.cache/restic/
Environment="HOME=/root"
# pipefail: so that redirecting stderr from the script to systemd-cat does not hide the failed command from OnFailure above.
# Random sleep (in seconds): in the case of multiple backup profiles. Many restic instances started at the same time could case high load or network bandwith usage.
# `systemd-cat` allows showing the restic output to the systemd journal
ExecStart=/bin/bash -c 'set -o pipefail; ps cax | grep -q restic && sleep $(shuf -i 0-300 -n 1); source /etc/restic/%I.env.sh && /bin/restic_backup.sh 2>&1 | systemd-cat'
@@ -0,0 +1,9 @@
[Unit]
Description=Backup with restic on schedule
[Timer]
OnCalendar=daily
Persistent=true
[Install]
WantedBy=timers.target
@@ -0,0 +1,15 @@
[Unit]
Description=Check restic backup Backblaze B2 for errors
# Email on failure require special setup. See README.md
#OnFailure=status-email-user@%n.service
Conflicts=restic-backup.service
# Prevent backup on unmetered connection. Needs special setup. See README.md.
#Requires=nm-unmetered-connection.service
#After=nm-unmetered-connection.service
[Service]
Type=simple
Nice=10
# pipefail: so that redirecting stderr from the script to systemd-cat does not hide the failed command from OnFailure above.
# `systemd-cat`: allows showing the restic output to the systemd journal
ExecStart=/bin/bash -c 'set -o pipefail; source /etc/restic/%I.env.sh && /bin/restic_check.sh 2>&1 | systemd-cat'
@@ -0,0 +1,9 @@
[Unit]
Description=Check restic backup Backblaze B2 for errors on a schedule
[Timer]
OnCalendar=monthly
Persistent=true
[Install]
WantedBy=timers.target