
#!/bin/sh
# File	: backup-user.sh
# By	: MaartenDeBoer.nl, 150103, 210413
# Subject	: Backup user(-dir) & SSH-copy it to remote/destination host
#(0.2)	: Added crontab -l
#(0.3)	: Added; cd {HOME}
#(0.4)	: Added PORT, USER, ls -l
#(0.5),171127	: Changed name to bck-appl.sh
#(0.6),180731	: Mod exclude; exclude ALL *tgz
#(0.7),210413	: Changed from bck-appl.sh
#(0.8),210707	: Mod. & add BACKUPDIR ($HOME/backup) & BCK_NR (daynr / month)
#(0.9),210707	: Add RCFILE
#(0.10),200708	: Added --exclude=*.iso *.zip
#		: Mod .t*gz
#(0.11),230208	: Add --exclude=\.*
#set -x
PGM="`basename $0|cut -d\. -f1`"
VER="0.11"
TMP="/tmp/${PGM}.$$"
LOG="${HOME}/log/${PGM}.log"
USER=`whoami`
HOSTNAME=`hostname|cut -d\. -f1`
BACKUPDIR="${HOME}/backup"
BCK_NR=`date +%d`
TARFILE="${HOME}/backup-user_${HOSTNAME}-${USER}-${BCK_NR}.tgz"
RCFILE="${HOME}/etc/${PGM}.rc"

DESTHOST="ssh.agrarix.it"
DESTPORT="22"
DESTUSER="backup"

if [ ! -d ${HOME}/log ]; then
  mkdir -p ${HOME}/log
fi

echo "`date` ${PGM} v${VER} started."|tee -a ${LOG}
touch ${TMP}

if [ -f ${RCFILE} ]; then
  echo "  RCFILE (${RCFILE}) found. So, using it."|tee -a ${LOG}
  . ${RCFILE}
fi
if [ -d ${BACKUPDIR} ]; then
  TARFILE="${BACKUPDIR}/backup-user_${HOSTNAME}-${USER}-${BCK_NR}.tgz"
fi

crontab -l > ${HOME}/crontab.asc

cd ${HOME}
tar cvzf ${TARFILE} --exclude=\.[a-zA-Z]* --exclude=*.t*gz --exclude=*.iso --exclude=*.zip .

if [ "${DESTHOST}" != "" ] && [ "${DESTUSER}" != "" ] && [ "${DESTPORT}" != "" ]; then
  echo "  To remote: ${DESTUSER}@${DESTHOST}"|tee -a ${LOG}
  scp -P ${DESTPORT} ${TARFILE} ${DESTUSER}@${DESTHOST}:backup/ 1>> ${LOG} 2>&1
  ssh -p ${DESTPORT} ${DESTUSER}@${DESTHOST} "ls -ltr backup/" | tee -a ${LOG}
fi

rm ${TMP}
echo "`date` ${PGM} v${VER} finished."|tee -a ${LOG}
exit 0

