#!/bin/bash
# backup directory
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
backup_dir=${SCRIPT_DIR}/backup
# load variaables form config
source ${SCRIPT_DIR}/openhab.conf
# current date
DATE=$(date +"%Y%m%d_%H%M%S")
# create backuop directories
mkdir -p ${backup_dir}/conf
mkdir -p ${backup_dir}/data/conf
mkdir -p ${backup_dir}/data/addons
mkdir -p ${backup_dir}/data/userdata
## backup
# main conf
tar -cjf ${backup_dir}/conf/${DATE}.tbz2 openhab.conf
# openHAB conf
tar -C ${SCRIPT_DIR}/data -cjf ${backup_dir}/data/conf/${DATE}.tbz2 conf
# openHAB addons
tar -C ${SCRIPT_DIR}/data -cjf ${backup_dir}/data/addons/${DATE}.tbz2 addons
# openHAB userdata
tar -C ${SCRIPT_DIR}/data --exclude='userdata/backup' --exclude='userdata/logs' -cjf ${backup_dir}/data/userdata/${DATE}.tbz2 userdata
# delete all files older 30 days
find ${backupDir} -iname "*.tbz2" -type f -mtime +30 -exec rm {} \; > /dev/null