#!/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