Fix btrfs support/detection
This commit is contained in:
parent
641d400afa
commit
beecd93c2b
54
bkctld
54
bkctld
|
@ -58,22 +58,6 @@ check_jail_on() {
|
||||||
echo $status
|
echo $status
|
||||||
}
|
}
|
||||||
|
|
||||||
check_btrfs() {
|
|
||||||
grep $(dirname $JAILDIR) /etc/fstab|grep -q btrfs
|
|
||||||
if [[ $? -eq 0 ]]; then
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
grep $JAILDIR /etc/fstab|grep -q btrfs
|
|
||||||
if [[ $? -ne 0 ]]; then
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
grep $INCDIR /etc/fstab|grep -q btrfs
|
|
||||||
if [[ $? -ne 0 ]]; then
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
exit 0
|
|
||||||
}
|
|
||||||
|
|
||||||
## get functions : get info on jail
|
## get functions : get info on jail
|
||||||
|
|
||||||
get_port() {
|
get_port() {
|
||||||
|
@ -227,8 +211,10 @@ sub_init() {
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Create jail $jail :"
|
echo "Create jail $jail :"
|
||||||
if ( check_btrfs); then
|
rootdir_inode=$(stat --format=%i $(dirname $JAILDIR))
|
||||||
|
jaildir_inode=$(stat --format=%i $JAILDIR)
|
||||||
|
if [ "$rootdir_inode" -eq 256 ] || [ "$jaildir_inode" -eq 256 ]; then
|
||||||
/sbin/btrfs subvolume create ${JAILDIR}/${jail}
|
/sbin/btrfs subvolume create ${JAILDIR}/${jail}
|
||||||
else
|
else
|
||||||
mkdir -p ${JAILDIR}/${jail}
|
mkdir -p ${JAILDIR}/${jail}
|
||||||
|
@ -274,17 +260,23 @@ sub_remove() {
|
||||||
log stop $jail
|
log stop $jail
|
||||||
fi
|
fi
|
||||||
echo "Delete jail $jail ..."
|
echo "Delete jail $jail ..."
|
||||||
if ( check_btrfs ); then
|
rm -f ${CONFDIR}/${jail}
|
||||||
rm -f ${CONFDIR}/${jail}
|
jail_inode=$(stat --format=%i ${JAILDIR}/${jail})
|
||||||
if [ -d ${INCDIR}/${jail} ]; then
|
if [ "$jail_inode" -eq 256 ]; then
|
||||||
/sbin/btrfs subvolume delete ${INCDIR}/${jail}/*
|
|
||||||
rmdir ${INCDIR}/${jail}
|
|
||||||
fi
|
|
||||||
/sbin/btrfs subvolume delete ${JAILDIR}/${jail}
|
/sbin/btrfs subvolume delete ${JAILDIR}/${jail}
|
||||||
else
|
else
|
||||||
rm -f ${CONFDIR}/${jail}
|
|
||||||
rm -rf ${JAILDIR}/${jail}
|
rm -rf ${JAILDIR}/${jail}
|
||||||
echo "You need to purge ${INCDIR}/${jail} manually !"
|
fi
|
||||||
|
if [ -d ${INCDIR}/${jail} ]; then
|
||||||
|
for inc in $(ls ${INCDIR}/${jail}); do
|
||||||
|
inc_inode=$(stat --format=%i ${INCDIR}/${jail}/$inc)
|
||||||
|
if [ "$inc_inode" -eq 256 ]; then
|
||||||
|
/sbin/btrfs subvolume delete ${INCDIR}/${jail}/${inc}
|
||||||
|
else
|
||||||
|
echo "You need to purge ${INCDIR}/${jail}/$inc manually !" >&2
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
rmdir --ignore-fail-on-non-empty ${INCDIR}/${jail}
|
||||||
fi
|
fi
|
||||||
set_firewall $jail
|
set_firewall $jail
|
||||||
echo "...OK"
|
echo "...OK"
|
||||||
|
@ -430,8 +422,9 @@ sub_inc() {
|
||||||
mkdir -p ${INCDIR}/${jail}
|
mkdir -p ${INCDIR}/${jail}
|
||||||
if [ ! -d "${inc}" ]; then
|
if [ ! -d "${inc}" ]; then
|
||||||
start=$(date +"%H:%M:%S")
|
start=$(date +"%H:%M:%S")
|
||||||
if ( check_btrfs ); then
|
jail_inode=$(stat --format=%i ${JAILDIR}/${jail})
|
||||||
/sbin/btrfs subvolume snapshot -r ${JAILDIR}/$jail $inc > /dev/null
|
if [ "$jail_inode" -eq 256 ]; then
|
||||||
|
/sbin/btrfs subvolume snapshot -r ${JAILDIR}/${jail} $inc > /dev/null
|
||||||
else
|
else
|
||||||
cp -alx ${JAILDIR}/${jail}/ $inc
|
cp -alx ${JAILDIR}/${jail}/ $inc
|
||||||
fi
|
fi
|
||||||
|
@ -484,8 +477,9 @@ sub_rm() {
|
||||||
#for j in $( ls ${INCDIR}/$jail ); do
|
#for j in $( ls ${INCDIR}/$jail ); do
|
||||||
for j in $( grep -v -f <(echo "${keep}") <(echo "${incs}") ); do
|
for j in $( grep -v -f <(echo "${keep}") <(echo "${incs}") ); do
|
||||||
start=$(date +"%H:%M:%S")
|
start=$(date +"%H:%M:%S")
|
||||||
if ( check_btrfs ); then
|
inc_inode=$(stat --format=%i ${INCDIR}/${jail}/${j})
|
||||||
/sbin/btrfs subvolume delete ${INCDIR}/$jail/$j >/dev/null
|
if [ "$inc_inode" -eq 256 ]; then
|
||||||
|
/sbin/btrfs subvolume delete ${INCDIR}/${jail}/${j} >/dev/null
|
||||||
else
|
else
|
||||||
cd ${INCDIR}/$jail
|
cd ${INCDIR}/$jail
|
||||||
rsync -a --delete $empty $j*
|
rsync -a --delete $empty $j*
|
||||||
|
|
Loading…
Reference in a new issue