BACKUP_DIR = /home/backups FILES_FROM = :/root/.backup.list RSYNC = /usr/local/bin/rsync SSH = /usr/bin/ssh SSH_USER ?= root SSH_PARAMS = -q -o BatchMode=yes -i /home/backups/.ssh/id_rsa .if !defined(HOST) err1: @echo HOST not defined @exit 1 .endif DATE != date +%Y%m%d%H%M DESTINATION = ${BACKUP_DIR}/${HOST}-${DATE} COUNT != ls -1d ${BACKUP_DIR}/${HOST}-* 2>/dev/null | wc -l LAST != ls -1d ${BACKUP_DIR}/${HOST}-* 2>/dev/null | tail -n1 .if !empty(LAST) RSYNC_LINK_DEST = --link-dest=${LAST} .endif backup: @mkdir -p ${DESTINATION} @echo Backuping ${HOST} to ${DESTINATION} @${RSYNC} -avr ${RSYNC_LINK_DEST} \ --log-file=${DESTINATION}/var/log/rsync.log \ --files-from=${FILES_FROM} \ -e "${SSH} ${SSH_PARAMS}" \ ${SSH_USER}@${HOST}:/ ${DESTINATION} local-backup: @mkdir -p ${DESTINATION} @echo Backuping ${HOST} to ${DESTINATION} @${RSYNC} -avr ${RSYNC_LINK_DEST} \ --log-file=${DESTINATION}/var/log/rsync.log \ --files-from=${FILES_FROM} \ / ${DESTINATION} clean: