#!/bin/bash # todo # backup desktop (check for to big files) # backup thunderbird # backup firefox # backup usb pen if connected # add state function DIRS="privat OpenVPN" EXCLUDE="cd/neue_hp" DATE=$(date -I) TARGET="${HOME}/backup/${DATE}" STATE=0 function state() { EXIT_CODE=$1 FILE=$2 if [ ! -z ${FILE} ]; then FILE_SIZE=$(du -sh ${FILE} | cut -f1) fi if [ $EXIT_CODE == 0 ]; then printf "%5s %5s\n" "[OK]" ${FILE_SIZE} else printf "%5s\n" "[ERROR]" STATE=$(($STATE + 1)) fi } # create today backup directory [ ! -d ${TARGET} ] && mkdir ${TARGET} echo "BACKUP DIRECTORY" for DIR in ${DIRS}; do printf "%-10s" "${DIR}" FILE="${TARGET}/${DATE}.${DIR}.tar.bz2" tar cjf ${FILE} --exclude=${EXCLUDE} ${HOME}/${DIR}/ 2> /dev/null state $? ${FILE} done echo "BACKUP BOOKMARKS" cp ${HOME}/.mozilla/firefox/*/bookmarkbackups/*-${DATE}.json ${TARGET} state $? ${TARGET}/*.json if [ ${STATE} -gt 0 ]; then echo "ERROR on backup!" read fi