summaryrefslogtreecommitdiff
path: root/borgAuto.sh
blob: e7192ad89cc55e8908a8d5f01ff60fb8b8746f57 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/usr/bin/bash
# 8 Sept 2019 SJ Pratt
# Copied from https://blog.andrewkeech.com/posts/170718_borg.html
# the envvar $REPONAME is something you should just hardcode
export REPOSITORY="/mnt/bak/borg" 

# Fill in your password here, borg picks it up automatically
export BORG_PASSPHRASE="" 

# Backup all of /home except a few excluded directories and files
borg create -v --stats --compression lz4                 \
    $REPOSITORY::'{hostname}-{now:%Y-%m-%dT%H:%M}' /home \
--exclude '/home/*/.cache'                               \
--exclude '/home/$USER/cargo'                        \
--exclude '/home/lost+found'                             \
--exclude '*.img'                                        \
--exclude '*.iso'                                        \

# Route the normal process logging to journalctl
2>&1

 
# Prune the repo of extra backups
borg prune -v $REPOSITORY --prefix '{hostname}-'         \
    --keep-hourly=6                                      \
    --keep-daily=7                                       \
    --keep-weekly=4                                      \
    --keep-monthly=6                                     \
 
# Include the remaining device capacity in the log
df -hl | grep --color=never /mnt/bak
 
borg list $REPOSITORY
 
exit 0