documentation
This commit is contained in:
parent
579ba632d6
commit
057e283032
62
README.md
62
README.md
@ -22,39 +22,30 @@ $ cd restic-systemd-automatic-backup
|
|||||||
$ sudo make install
|
$ sudo make install
|
||||||
````
|
````
|
||||||
|
|
||||||
### 1. Create Backblaze B2 account
|
|
||||||
|
|
||||||
First, see this official Backblaze [tutorial](https://help.backblaze.com/hc/en-us/articles/115002880514-How-to-configure-Backblaze-B2-with-Restic-on-Linux) on restic, and follow the instructions ("Create Backblaze account with B2 enabled") there on how to create a new B2 bucket.
|
### 1. Configure the Backup
|
||||||
|
|
||||||
Take note of the your account ID, application key and password for the next steps.
|
First edit the following Files as you like
|
||||||
|
|
||||||
|
* restic-backup.service
|
||||||
|
* Add your Username
|
||||||
|
* restic-check.service
|
||||||
|
* Add your Username
|
||||||
|
* env.sh
|
||||||
|
* pw.txt
|
||||||
|
* password for your Backup
|
||||||
|
|
||||||
|
After that you can copy all files to the right directories with the Makefile in this Repository
|
||||||
|
|
||||||
### 2. Configure your B2 account locally
|
|
||||||
Put these files in `/etc/restic/`:
|
|
||||||
* `b2_env.sh`: Fill this file out with your B2 bucket settings etc. The reason for putting these in a separate file is that it can be used also for you to simply source, when you want to issue some restic commands. For example:
|
|
||||||
```bash
|
```bash
|
||||||
$ source /etc/restic/b2_env.sh
|
$ sudo make install
|
||||||
$ restic snapshots # You don't have to supply all parameters like --repo, as they are now in your environment!
|
|
||||||
````
|
````
|
||||||
* `b2_pw.txt`: Put your B2 password in this file.
|
|
||||||
|
|
||||||
### 3. Initialize remote repo
|
### 2. Initialize your Backup
|
||||||
Now we must initialize the repository on the remote end:
|
|
||||||
```bash
|
|
||||||
source /etc/restic/b2_env.sh
|
|
||||||
restic init
|
|
||||||
```
|
|
||||||
|
|
||||||
### 4. Script for doing the backup
|
See https://restic.readthedocs.io/en/stable/030_preparing_a_new_repo.html for how to do this
|
||||||
Put this file in `/usr/local/sbin`:
|
|
||||||
* `restic_backup.sh`: A script that defines how to run the backup. Edit this file to respect your needs in terms of backup which paths to backup, retention (number of backups to save), etc.
|
|
||||||
|
|
||||||
Put this file in `/`:
|
### 3. Make first backup & verify
|
||||||
* `.backup_exclude`: A list of file pattern paths to exclude from you backups, files that just occupy storage space, backup-time, network and money.
|
|
||||||
|
|
||||||
|
|
||||||
### 5. Make first backup & verify
|
|
||||||
Now see if the backup itself works, by running
|
Now see if the backup itself works, by running
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
@ -62,14 +53,8 @@ $ /usr/local/sbin/restic_backup.sh
|
|||||||
$ restic snapshots
|
$ restic snapshots
|
||||||
````
|
````
|
||||||
|
|
||||||
### 6. Backup automatically; systemd service + timer
|
### 4. Backup automatically; systemd service + timer
|
||||||
Now we can do the modern version of a cron-job, a systemd service + timer, to run the backup every day!
|
Now we can do the modern version of a cron-job, a systemd service + timer, to run the backup every week!
|
||||||
|
|
||||||
|
|
||||||
Put these files in `/etc/systemd/system/`:
|
|
||||||
* `restic-backup.service`: A service that calls the backup script.
|
|
||||||
* `restic-backup.timer`: A timer that starts the backup every day.
|
|
||||||
|
|
||||||
|
|
||||||
Now simply enable the timer with:
|
Now simply enable the timer with:
|
||||||
```bash
|
```bash
|
||||||
@ -103,20 +88,7 @@ $ journalctl -f -u restic-backup.service
|
|||||||
(skip `-f` to see all backups that has run)
|
(skip `-f` to see all backups that has run)
|
||||||
|
|
||||||
|
|
||||||
|
### 5. Optional: automated backup checks
|
||||||
### 7. Email notification on failure
|
|
||||||
We want to be aware when the automatic backup fails, so we can fix it. Since my laptop does not run a mail server, I went for a solution to set up my laptop to be able to send emails with [postfix via my Gmail](https://easyengine.io/tutorials/linux/ubuntu-postfix-gmail-smtp/). Follow the instructions over there.
|
|
||||||
|
|
||||||
Put this file in `/usr/local/sbin`:
|
|
||||||
* `systemd-email`: Sends email using sendmail(1). This script also features time-out for not spamming Gmail servers and getting my account blocked.
|
|
||||||
|
|
||||||
Put this files in `/etc/systemd/system/`:
|
|
||||||
* `status-email-user@.service`: A service that can notify you via email when a systemd service fails. Edit the target email address in this file.
|
|
||||||
|
|
||||||
As you maybe noticed already before, `restic-backup.service` is configured to start `status-email-user.service` on failure.
|
|
||||||
|
|
||||||
|
|
||||||
### 8. Optional: automated backup checks
|
|
||||||
Once in a while it can be good to do a health check of the remote repository, to make sure it's not getting corrupt. This can be done with `$ restic check`.
|
Once in a while it can be good to do a health check of the remote repository, to make sure it's not getting corrupt. This can be done with `$ restic check`.
|
||||||
|
|
||||||
There are some `*-check*`-files in this git repo. Install these in the same way you installed the `*-backup*`-files.
|
There are some `*-check*`-files in this git repo. Install these in the same way you installed the `*-backup*`-files.
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[Unit]
|
[Unit]
|
||||||
Description=Backup with restic
|
Description=Backup with restic
|
||||||
OnFailure=status-email-user@%n.service
|
OnFailure=status-popup-user@%n.service
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=simple
|
Type=simple
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[Unit]
|
[Unit]
|
||||||
Description=Check restic backup for errors
|
Description=Check restic backup for errors
|
||||||
OnFailure=status-email-user@%n.service
|
OnFailure=status-popup-user@%n.service
|
||||||
Conflicts=restic.service
|
Conflicts=restic.service
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
|
Loading…
Reference in New Issue
Block a user