45 lines
1.7 KiB
Bash
Executable file
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
|