|  |  | 
 |  |  |  | 
 |  |  | BACKUP_DIR="/backup/work/" | 
 |  |  | FILES_DIR="/home/joel/OneDrive/" | 
 |  |  | RCLONE_BACKUP=("GoogleDrive" "Mega" "unimelb" "pCloud" "gdrive_unimelb" "NC_home" "NextCloud") | 
 |  |  | RCLONE_FILES=("Mega" "unimelb" "gdrive_unimelb" "NC_home") | 
 |  |  | EXCLUDES="--exclude '*~' --exclude '*#*' --exclude '.DS_Store' --exclude '*.7z' " | 
 |  |  | RCLONE_BACKUP=("GoogleDrive" "Mega" "unimelb" "pCloud" "gdrive_unimelb") | 
 |  |  | RCLONE_FILES=("Mega" "unimelb" "gdrive_unimelb") | 
 |  |  | EXCLUDES="/home/joel/Scripts/backup_patterns.txt" | 
 |  |  |  | 
 |  |  | function sync() { | 
 |  |  |     case $1 in | 
 |  |  | 
 |  |  |     fi | 
 |  |  | } | 
 |  |  |  | 
 |  |  | cd /home/joel/OneDrive | 
 |  |  |  | 
 |  |  | if [ "$1" = "sync" ]; then | 
 |  |  |     echo -e '\033[0;32m'Syncing'\033[0m' | 
 |  |  |     sync_all p | 
 |  |  | 
 |  |  | elif [ "$1" = "cron" ]; then | 
 |  |  |     borg create \ | 
 |  |  |      --compression zstd,22 \ | 
 |  |  |      $EXCLUDES \ | 
 |  |  |      --exclude-from $EXCLUDES \ | 
 |  |  |      \ | 
 |  |  |      $BACKUP_DIR::"$(date +%F+%R)" \ | 
 |  |  |      $FILES_DIR | 
 |  |  | 
 |  |  |      --verbose \ | 
 |  |  |      --stats \ | 
 |  |  |      --compression zstd,22 \ | 
 |  |  |      $EXCLUDES \ | 
 |  |  |      --exclude-from $EXCLUDES \ | 
 |  |  |      \ | 
 |  |  |      $BACKUP_DIR::"$(date +%F+%R)" \ | 
 |  |  |      $FILES_DIR | 
 |  |  | 
 |  |  |      $BACKUP_DIR | 
 |  |  |  | 
 |  |  | LAST="$(borg list $BACKUP_DIR | tail -n2 | cut -d' ' -f1)" | 
 |  |  | if [ -z "$(borg diff $BACKUP_DIR::$(echo $LAST | cut -d' ' -f1) $(echo $LAST | cut -d' ' -f2))" ]; then | 
 |  |  | TOP="$(echo $LAST | cut -d' ' -f1)" | 
 |  |  | BOTTOM="$(echo $LAST | cut -d' ' -f2)" | 
 |  |  | if [ -z "$(borg diff $BACKUP_DIR::$TOP $BOTTOM)" ]; then | 
 |  |  |     borg delete $BACKUP_DIR::$(echo $LAST | cut -d' ' -f2) | 
 |  |  | else | 
 |  |  |     echo "New backup $(echo $LAST | cut -d' ' -f2)" |