kemonine
/
lollipopcloud
Archived
1
0
Fork 0
This repository has been archived on 2022-08-05. You can view files and clone it, but cannot push or open issues or pull requests.
lollipopcloud/services/borg.md

91 lines
2.0 KiB
Markdown

# Borg Backups
The BETTER backup solution.
**BE MINDFUL OF RUNNING BORG. IT CAN CAUSE PROBLEMS WITH DISK IOPS AND RAM USAGE. BEST USED WHEN THE MACHINE IS KNOWN TO BE IDLE!!!**
## Inspiration / Further Reading
- [https://borgbackup.readthedocs.io/en/stable/installation.html#from-source](https://borgbackup.readthedocs.io/en/stable/installation.html#from-source)
## Install
*Note: we are downloading pre-built borg images from the main lollipop cloud servers in this step instead of building it from scratch*
### arm32v7 boards
``` bash
wget -O /usr/local/bin/borg https://dl.lollipopcloud.solutions/api/download/borg/borg-1.1.7-arm32v7-debian-stretch
```
### arm64v8 boards
``` bash
wget -O /usr/local/bin/borg https://dl.lollipopcloud.solutions/api/download/borg/borg-1.1.7-arm64v8-debian-stretch
```
### All boards
``` bash
chmod a+x /usr/local/bin/borg
```
## Initialize Backup Repo
*Note: assumes you have a ```/tank``` on external disk*
``` bash
cd /tank/backup
borg init --encryption none . # No crypto/auth for speed (see docs for more infos)
```
## Backup Script
Setup a backup script that backs up everything (**note the excludes**) to the initialized repository.
Run ```/root/borg_backup.sh``` any time you want to take a backup.
``` bash
cat > /root/borg_backup.sh <<EOF
#!/bin/sh
REPOSITORY=/tank/backup
# Backup all of /home and /var/www except a few
# excluded directories
/usr/local/bin/borg create -v --progress --stats -C lzma,3 \\
\$REPOSITORY::backup-\`date +%Y-%m-%d-%H%M\` \\
/ \\
--exclude /run \\
--exclude /snapshots \\
--exclude /tank \\
--exclude /scratch \\
--exclude /swap \\
--exclude /proc \\
--exclude /sys \\
--exclude /var/lib/schroot/mount \\
--exclude /var/lib/lxcfs \\
--exclude /var/lib/docker \\
--exclude /mnt
# Use the 'prune' subcommand to maintain 7 daily, 4 weekly
# and 6 monthly archives.
/usr/local/bin/borg prune -v --list \$REPOSITORY \\
--keep-daily=7 \\
--keep-weekly=4 \\
--keep-monthly=6
EOF
chmod a+x /root/borg_backup.sh
```