#!/bin/sh lockfile="/tmp/duplicacy.lock" FOLDERS_TO_BACKUP=("" "<2nd folder to backup>") HOST=$(hostname -s) LOGFILE="/var/log/duplicacy/duplicacy_$(/bin/date +%Y%m%d-%H%M%S).log" if [ -e ${lockfile} ] && kill -0 `cat ${lockfile}`; then echo "duplicacy backup already running" >> ${LOGFILE} exit fi # make sure the lockfile is removed when we exit and then claim it trap "rm -f ${lockfile}; exit" INT TERM EXIT echo $$ > ${lockfile} # run the backup for folder in ${FOLDERS_TO_BACKUP[@]}; do # removes the slashes and replaces with a dash id=${HOST}${folder////-} cd ${folder} if [ -d "${folder}/.duplicacy" ]; then duplicacy -verbose -log backup -stats >> ${LOGFILE} 2>&1 else # sftp password DUPLICACY_SSH_PASSWORD DUPLICACY__SSH_PASSWORD ssh_password echo "Please enter duplicacy ssh password" read -S SSH_PASSWORD export DUPLICACY_SSH_PASSWORD=${SSH_PASSWORD} duplicacy init ${id} sftp://duplicacy@gauntnas.home.johnhgaunt.com//mnt/data-pool/duplicacy/data duplicacy set -key ssh_password -value "${SSH_PASSWORD}" SSH_PASSWORD='' fi done # compress the logs pigz $(dirname ${LOGFILE})/*.log # clean up lockfile rm -f ${lockfile}