Watchdog for restic backup
Go to file
Hendrik Schutter 96bddad392 added overview and install instructions 2020-04-25 11:10:16 +02:00
.gitignore backup dir stored in variable; eMail settings in variable 2020-04-25 10:26:18 +02:00
LICENSE Initial commit 2020-04-24 22:51:11 +02:00
README.md added overview and install instructions 2020-04-25 11:10:16 +02:00
check_AutoBackup.sh backup dir stored in variable; eMail settings in variable 2020-04-25 10:26:18 +02:00

README.md

Restic-Backend-Watchdog

Watchdog for restic backup that are automatic triggered via an interval

TLDR: Bash script that emails you if your restic backup interval is overdue.

How does it work?

The script monitors the backend of a restic backup. The bash script is executed via cronjob or a systemd-timer periodically. The user sets an interval for eachrestic repo (e.g. your laptop-backup). This is the same interval as the one that triggers the automatic backup from your device. If your automatic backup failed (e.g. no Internet), there will be no changes in den repo. The script will notice that and emails you.

Features

  • runs just with bash
  • no restic authentication needed
  • multiple repos
  • individual interval for each repo
  • custom email server via ssmtp

Planned Features

  • Able to determine a failed restic repo task from a successful task

Installation

  1. download the check_AutoBackup.sh
  2. chmod +x check_AutoBackup.sh
  3. install ssmtp
  4. nano /etc/ssmtp/ssmtp.conf
FromLineOverride=YES
root=
mailhub=mail.yourmailserver.tld:587
AuthUser=mailuser@maildomain.tld
AuthPass=yourmailuserpassword
  1. nano /etc/ssmtp/revaliases
  1. edit settings in check_AutoBackup.sh DEBUG="true" timestampFolder="index" #folder for reading timestamp backupFolder="./backups" #directory that contains all repos ... receiverEmail="mailuser@maildomain.tld" senderEmail="mailuser@maildomain.tld" senderName="AutoBackup Watchdog"
7. edit repo settings in check_AutoBackup.sh

repos_name[0]=" first backup repo" repos_directory[0]="first_repo" repos_interval[0]=21600 #sec repos_interval_tolerance[0]=10 #%

8. install crontab or systemd-timer