#!/bin/bash # do not change those timestamps if you want to use bJanitor later on # i'm serious it won't work. datelog=`date "+%Y-%m-%d_-_%H_%M_%S"` date=`date "+%Y-%m/%d/%H_%M_%S"` HOME=/home/xqyz/ DEVICE=/dev/sdb1 MOUNT=/mnt/backup EXCLUDES=/home/xqyz/.rsync/excludes SPECIAL=/home/xqyz/.rsync/special LOGDIR=${MOUNT}/logs LOGFILE=${LOGDIR}/${datelog}.log #mount ${DEVICE} 2>/dev/null if [ -f ${MOUNT}/.is_backup ] then if [ -f ${MOUNT}/.backup_in_progress ] then echo "There is already a backup in progress" else touch ${MOUNT}/.backup_in_progress mkdir ${LOGDIR} 2>/dev/null mkdir -p ${MOUNT}/${date}_incomplete rsync -azv \ --delete \ --delete-excluded \ --exclude-from=${EXCLUDES} \ --link-dest=${MOUNT}/current \ ${HOME} ${MOUNT}/${date}_incomplete | tee ${LOGFILE} \ && mv ${MOUNT}/${date}_incomplete ${MOUNT}/$date \ && rm -f ${MOUNT}/current \ && ln -s ${MOUNT}/$date ${MOUNT}/current # special backups cat ${SPECIAL} | while read line; do mkdir ${MOUNT}/special/${line} 2>/dev/null rsync -azv --delete $line ${MOUNT}/special/${line} done rm ${MOUNT}/.backup_in_progress fi else echo "The mountpoint does not seem to be a valid backup destiantion" echo "Please create a .is_backup file in the directory if it is" fi #umount ${DEVICE} 2>/dev/null