dotfiles/.bin/backup-and-update-system

55 lines
1.7 KiB
Bash
Executable File

#!/bin/bash
set -xeuo pipefail
backup_ssh="kunsi-t470@backup-kunsi.htz-hel.kunbox.net"
# Push some git repos
pass git push
git --git-dir=$HOME/.cfg/ --work-tree=$HOME push
# Fetch a fresh copy of all locally cloned git repos
for dir in $(find /home/kunsi/git -mindepth 1 -maxdepth 1 -type d)
do
git -C "$dir" fetch || true
done
# Do a backup.
(
rsync -zaAP --numeric-ids --delete --relative \
--rsync-path="/usr/bin/rsync --fake-super" \
-e "ssh" --delete-excluded \
--exclude "/home/kunsi/.cache/" \
--exclude "/home/kunsi/.config/Ferdi/" \
--exclude "/home/kunsi/.config/Rambox/" \
--exclude "/home/kunsi/.local/lib/python*/site-packages/" \
--exclude "/home/kunsi/.local/share/TelegramDesktop/tdata/user_data/cache/" \
--exclude "/home/kunsi/.local/share/sddm/" \
--exclude "/home/kunsi/.mozilla/firefox/*/storage/*" \
--exclude "/home/kunsi/.npm/" \
--exclude "/home/kunsi/.nvm/" \
--exclude "/home/kunsi/.platformio/" \
--exclude "/home/kunsi/.ssh/cm-*" \
--exclude "/home/kunsi/.vdirsyncer" \
--exclude "/home/kunsi/Downloads/" \
--exclude "/home/kunsi/Schreibtisch/" \
--exclude "/home/kunsi/VirtualBox VMs/" \
--exclude "/home/kunsi/qemu/Windows_10.qcow2" \
--exclude "/home/kunsi/tmp.*/" \
"/home/kunsi" "$backup_ssh":backups/
# Exit code 24 means some files have vanished during rsync.
# I don't know why, but this is very common, apparently?
exitcode=$?
if [[ $exitcode != 0 ]] && [[ $exitcode != 24 ]]
then
exit 1
fi
)
ssh $backup_ssh "sudo /usr/local/bin/rotate-single-backup-client kunsi-t470"
printf '\a'
# Do updates
sudo pacman -Syu