summaryrefslogtreecommitdiff
path: root/borgAuto.sh
blob: 29b6c24305b879d8e4cfe390e87b632c14e2ab98 (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
36
37
38
39
40
41
42
43
44
45
46
47
#!/usr/bin/env bash
# Copied from https://blog.andrewkeech.com/posts/170718_borg.html
# the envvar $REPONAME is something you should just hardcode
export REPOSITORY="/media/$USER/$REPONAME/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-%d %H:%M}' /home \
--exclude '/home/*/.cache'                               \
--exclude '/home/*/.ccache'                              \
--exclude '/home/$USER/.local/include'                   \
--exclude '/home/$USER/.local/installppa.sh'             \
--exclude '/home/$USER/.local/listppa'                   \
--exclude '/home/$USER/Downloads'                        \
--exclude '/home/$USER/VirtualBox\ VMs'                  \
--exclude '/home/$USER/lxd-zfs.img'                      \
--exclude '/home/lost+found'                             \
--exclude '*.img'                                        \
--exclude '*.iso'                                        \

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

# If there is an error backing up, reset password envvar and exit
if [ "$?" = "1" ] ; then
    export BORG_PASSPHRASE=""
    exit 1
fi
 
# 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 /dev/sdc
 
borg list $REPOSITORY
 
# Unset the password
export BORG_PASSPHRASE=""
exit 0