evobackup/lib/bkctld-rm

45 lines
1.7 KiB
Bash
Executable file

#!/bin/sh
#
# Remove old incremtal inc of all jails
# Usage: rm
#
LIBDIR="$(dirname $0)" && . "${LIBDIR}/config"
for jail in $("${LIBDIR}/bkctld-list"); do
incs=$(ls "${INCDIR}/${jail}")
if [ -f "${CONFDIR}/${jail}" ]; then
keepfile="$(mktemp)"
while read j; do
date=$( echo "${j}" | cut -d. -f1 )
before=$( echo "${j}" | cut -d. -f2 )
date -d "$(date "${date}") ${before}" "+%Y-%m-%d"
done < "${CONFDIR}/${jail}" > "${keepfile}"
for j in $(echo "${incs}" | grep -v -f "${keepfile}"); do
start=$(date +"%H:%M:%S")
inc_inode=$(stat --format=%i "${INCDIR}/${jail}/${j}")
if [ "${inc_inode}" -eq 256 ]; then
/bin/btrfs subvolume delete "${INCDIR}/${jail}/${j}" | debug
end=$(date +"%H:%M:%S")
notice "${jail} : deleted ${j} inc [${start}/${end}]"
else
lock="/run/lock/bkctld/rm-${jail}.lock"
if [ -f "${lock}" ]; then
warning "${jail} : trying to run already running rm"
else
(
empty="/tmp/bkctld-${$}-$(date +%N)"
mkdir -p /run/lock/bkctld && touch "${lock}" && mkdir -p "${empty}"
trap "rm -f ${lock} && rmdir ${empty}" 0
rsync -a --delete "${empty}/" "${INCDIR}/${jail}/${j}/"
rmdir "${INCDIR}/${jail}/${j}/"
end=$(date +"%H:%M:%S")
notice "${jail} : deleted ${j} inc [${start}/${end}]"
)
fi
fi
done
rm "${keepfile}"
fi
done