evobackup/lib/bkctld-inc

38 lines
1.2 KiB
Bash
Executable file

#!/bin/sh
#
# Make incremental inc of all jails
# Usage: inc
#
LIBDIR="$(dirname $0)" && . "${LIBDIR}/config"
date=$(date +"%Y-%m-%d-%H")
for jail in $("${LIBDIR}/bkctld-list"); do
inc="${INCDIR}/${jail}/${date}"
mkdir -p "${INCDIR}/${jail}"
if [ ! -d "${inc}" ]; then
start=$(date +"%H:%M:%S")
jail_inode=$(stat --format=%i "${JAILDIR}/${jail}")
if [ "$jail_inode" -eq 256 ]; then
/bin/btrfs subvolume snapshot -r "${JAILDIR}/${jail}" "${inc}" | debug
end=$(date +"%H:%M:%S")
notice "${jail} : made ${date} inc [${start}/${end}]"
else
lock="/run/lock/bkctld/inc-${jail}.lock"
if [ -f "${lock}" ]; then
warning "${jail} : trying to run already running inc"
else
(
mkdir -p /run/lock/bkctld && touch "${lock}"
trap "rm -f ${lock}" 0
cp -alx "${JAILDIR}/${jail}/" "${inc}"
end=$(date +"%H:%M:%S")
notice "${jail} : made ${date} inc [${start}/${end}]"
)
fi
fi
else
warning "${jail} : trying to made already existant inc"
fi
done