39 lines
1.2 KiB
Bash
39 lines
1.2 KiB
Bash
#!/bin/sh
|
|
|
|
lockfile="/tmp/duplicacy.lock"
|
|
FOLDERS_TO_BACKUP=("<folder 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_<STORAGENAME>_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} |