#!/usr/bin/env bash set -Eeuo pipefail # # BorgBackup # if [ ! -d ~/UTCLOUD/ ]; then red "$HOME/UTCLOUD not attached. Backup not started." exit 1 fi if [ ! -d ~/borgbackup/ ]; then yellow "$HOME/borgbackup/ repository doesn't exist. Downloading latest version from ~/UTCLOUD/borg/borgbackup/ into ~/borgbackup/." # The initial borg repo was created with: # $ borg init --append-only --encryption=keyfile ~/borgbackup # See also: https://borgbackup.readthedocs.io/en/stable/usage/notes.html#append-only-mode rsync --verbose --progress --stats --update --recursive ~/UTCLOUD/borg/borgbackup/ ~/borgbackup fi BACKUP_TAG="${1-default}" rm -rf "$HOME/tmp/backup/" mkdir -p "$HOME/tmp/backup/" yellow "Creating backup for newsboat data" newsboat -E "$HOME/tmp/backup/newsboat.txt" green "Done" yellow "Creating backup of notmuch data" notmuch dump --output="$HOME/tmp/backup/notmuch-dump.txt" green "Done" yellow "Creating new borg archive entry" borg create \ --verbose \ --stats \ --progress \ --compression lzma,6 \ ~/borgbackup::"{hostname}-{now}-${BACKUP_TAG}" \ ~/Nextcloud/ \ ~/mbsync/ \ ~/archive/ \ ~/tmp/backup/ # add folders to be backed up here green "Done" yellow "Committing borg config changes..." pushd ~/dev/libre/borg/ git add . git commit -m "JOB: automated update of borg config files after backup.sh" git push origin master popd green "Done." yellow "Syncing ~/borgbackup to ~/UTCLOUD/borg/borgbackup/" rsync --verbose --progress --stats --update --recursive ~/borgbackup/ ~/UTCLOUD/borg/borgbackup/ green "Done" yellow "Syncing ~/borgbackup to $R:borgbackup/" rsync --verbose --progress --stats --update --recursive ~/borgbackup/ "$R:borgbackup/" green "Done" yellow "Syncing $R:vps-borgbackup/ ~/UTCLOUD/borg/vps-borgbackup/" rsync --verbose --progress --stats --update --recursive "$R:vps-borgbackup/" ~/UTCLOUD/borg/vps-borgbackup/ green "Done" # # mr # yellow "Backing up ~/dev/libre/ git repos" pushd ~/dev/libre/ || exit 1 mr -s master mr -s status mr -s -j16 update mr -s hd mr -s -j4 rsyncnet popd || exit 1 yellow "Syncing annex" pushd ~/annex/ || exit 1 git annex sync popd || exit 1 green "Done"