Newer
Older
openhab / backup.sh
#!/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