Skip to content

Instantly share code, notes, and snippets.

@fmitha
Created May 17, 2018 10:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fmitha/302a5d665c4702cac6605958ae8cdc9a to your computer and use it in GitHub Desktop.
Save fmitha/302a5d665c4702cac6605958ae8cdc9a to your computer and use it in GitHub Desktop.
#!/bin/bash
#set -ex
#set -e
set -x
set -o pipefail
export SERVER="ramnode"
export HOSTNAME="orwell"
CLEVEL=zlib,9
. /home/faheem/.keychain/${HOSTNAME}-sh
case "$1" in
# BACKUP SECTION
# ==============
backup)
echo "Backing up" # command for backing up
# BACKUP-MAIL
#borg init -e none faheem@ramnode:/mnt/backup-Mail
borg create -c 30 --compression $CLEVEL --stats faheem@$SERVER:/mnt/backup-Mail::`hostname`-`date +%Y-%m-%d:%H.%M` /home/faheem/Mail
# BACKUP-INBOX
#borg init -e none faheem@ramnode:/mnt/backup-INBOX
borg create -c 30 --compression $CLEVEL --stats faheem@$SERVER:/mnt/backup-INBOX::`hostname`-`date +%Y-%m-%d:%H.%M` /var/spool/mail/faheem
# BACKUP-PERSONAL
#borg init -e none faheem@ramnode:/mnt/backup-personal
# borg create --compression lz4 --stats /media/faheem/My\ Passport/backup-personal::`hostname`-`date +%Y-%m-%d:%H.%M` /home/faheem/personal
borg create -c 30 --compression $CLEVEL --stats faheem@$SERVER:/mnt/backup-personal::`hostname`-`date +%Y-%m-%d:%H.%M` /home/faheem/personal
;;
# CHECK SECTION
check)
echo "Checking" # command for verification
## Check backup-Mail
# '^Remote:\s*(Checking segments.*)?$'
#{ borg check faheem@ramnode:/mnt/backup-Mail 2>&1 1>&3 | tr '\r' '\n' | grep -v "^Checking segments" 1>&2; } 3>&1
#{ borg check faheem@$SERVER:/mnt/backup-Mail 2>&1 1>&3 | tr '\r' '\n' | grep -Ev "^Remote:\s*(Checking segments.*)?$" 1>&2; } 3>&1
borg check --repository-only faheem@$SERVER:/mnt/backup-Mail
#mapfile -t mailarchives < <(borg list --short '/media/faheem/My Passport/backup-Mail')
#borg extract -n '/media/faheem/My Passport/backup-Mail'::"${mailarchives[-1]}"
## Comment these two lines out for now, because they use a lot of data
# mapfile -t mailarchives < <(borg list --short 'faheem@ramnode:/mnt/backup-Mail')
# borg extract -n 'faheem@ramnode:/mnt/backup-Mail'::"${mailarchives[-1]}"
#######################################################################################
# ## Check backup-INBOX
# #borg check '/media/faheem/My Passport/backup-INBOX' 2>&1 | tr '\r' '\n' | grep -v "^Checking segments"
#{ borg check faheem@$SERVER:/mnt/backup-INBOX 2>&1 1>&3 | tr '\r' '\n' | grep -v "^Remote:\s*(Checking segments.*)?$" 1>&2; } 3>&1
borg check --repository-only faheem@$SERVER:/mnt/backup-INBOX
# mapfile -t inboxarchives < <(borg list --short '/media/faheem/My Passport/backup-INBOX')
# borg extract -n '/media/faheem/My Passport/backup-INBOX'::"${inboxarchives[-1]}"
#########################################################################################
borg check --repository-only faheem@$SERVER:/mnt/backup-personal
# ## Check backup-personal
# #borg check '/media/faheem/My Passport/backup-personal' 2>&1 | tr '\r' '\n' | grep -v "^Checking segments"
# { borg check '/media/faheem/My Passport/backup-personal' 2>&1 1>&3 | tr '\r' '\n' | grep -v "^Checking segments" 1>&2; } 3>&1
# mapfile -t personalarchives < <(borg list --short '/media/faheem/My Passport/backup-personal')
# borg extract -n '/media/faheem/My Passport/backup-personal'::"${personalarchives[-1]}"
;;
esac
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment