#!/usr/bin/env bash set -euo pipefail source /sync/home_external/.bash_aliases shopt -s expand_aliases # make aliases work backupRootDirectory() { ensureRootDirectory $2 sd rsync_backup $1 $2 } backupDirectory() { ensureDirectory $2 rsync_backup $1 $2 } ensureRootDirectory() { ensureDirectory $1 sudo chown root:root $1 } ensureDirectory() { if [[ ! -e $1 ]]; then mkdir -p $1 fi } ############################### ### update local backup dir ### ############################### BACKUP_DIR=/sync/backup ensureDirectory $BACKUP_DIR BACKUP_DIR_HOME=$BACKUP_DIR/home ensureDirectory $BACKUP_DIR_HOME backupDirectory $HOME/.ssh/ $BACKUP_DIR_HOME/.ssh/ BACKUP_DIR_ROOT=$BACKUP_DIR/root/etc ensureRootDirectory $BACKUP_DIR_ROOT sd rsync_backup /etc/hosts $BACKUP_DIR_ROOT/ sd rsync_backup /etc/ddclient.conf $BACKUP_DIR_ROOT/ backupRootDirectory /etc/ddclient/ $BACKUP_DIR_ROOT/ddclient/ backupRootDirectory /etc/letsencrypt/ $BACKUP_DIR_ROOT/letsencrypt/ backupRootDirectory /etc/nginx/ $BACKUP_DIR_ROOT/nginx/ backupRootDirectory /etc/ssh/ $BACKUP_DIR_ROOT/ssh/ backupRootDirectory /etc/wireguard/ $BACKUP_DIR_ROOT/wireguard/ backupRootDirectory /etc/docker/daemon.json $BACKUP_DIR_ROOT/docker/ ##################### ### upload backup ### ##################### if [[ "$1" == "--noupload" ]]; then exit 0; fi sd rsync_backup -e "ssh -i /home/edi/.ssh/id_ed25519" --filter="P /home/docker" /sync/backup/ fabian@garrus:/citadel/backup/edi/ sd rsync_backup -e "ssh -i /home/edi/.ssh/id_ed25519" /home/edi/docker/ fabian@garrus:/citadel/backup/edi/home/docker/