diff --git a/bkctl b/bkctl index 10c299d..8d4eda4 100755 --- a/bkctl +++ b/bkctl @@ -21,6 +21,7 @@ sub_help(){ echo "Subcommands:" echo " init Init jail " echo " update (|all) Update jail or all" + echo " remove (|all) Remove jail or all" echo " start (|all) Start jail or all" echo " stop (|all) Stop jail or all" echo " reload (|all) Reload jail or all" @@ -66,6 +67,25 @@ sub_update() { fi } +sub_remove() { + jail=$1 + if ( check_jail_on $jail ); then + $0 stop $jail + fi + if ( check_btrfs ); then + btrfs subvolume delete ${JAILDIR}/${jail} + rm -f ${CONFDIR}/${jail} + if [ -d ${INCDIR}/${jail} ]; then + btrfs subvolume delete ${INCDIR}/${jail}/* + rmdir ${INCDIR}/${jail} + fi + else + rm -rf ${JAILDIR}/${jail} + rm -f ${CONFDIR}/${jail} + rm -rf ${INCDIR}/${jail} + fi +} + sub_start() { jail=$1 if ( $(check_jail_on $jail) ); then @@ -165,7 +185,7 @@ sub_inc() { if [ ! -d "${inc}" ]; then /bin/date +"%d-%m-%Y ; %H:%M" >> $LOGFILE if ( check_btrfs ); then - /sbin/btrfs subvolume snapshot ${JAILDIR}/$jail $inc >> $LOGFILE + btrfs subvolume snapshot ${JAILDIR}/$jail $inc >> $LOGFILE else echo -n "hard copy $jail begins at : " >> $LOGFILE cp -alx ${JAILDIR}/${jail}/ ${INCDIR}${jail}/$date @@ -196,7 +216,7 @@ sub_rm() { echo -n "Delete $i/$j begins at : " >> $LOGFILE /bin/date +"%d-%m-%Y ; %H:%M" >> $LOGFILE if ( check_btrfs ); then - [ -n "$j" ] && /sbin/btrfs subvolume delete $INCDIR$i/$j && touch /tmp/evobackup-rm.txt + [ -n "$j" ] && btrfs subvolume delete $INCDIR$i/$j && touch /tmp/evobackup-rm.txt else cd $INCDIR$i [ -n "$j" ] && rsync -a --delete $EMPTYDIR/ $j* @@ -402,7 +422,7 @@ main() { fi fi ;; - "start" | "stop" | "reload" | "restart" | "sync" | "update") + "start" | "stop" | "reload" | "restart" | "sync" | "update" | "remove") if [[ -n "${jail}" ]]; then if [[ "${jail}" = "all" ]]; then for jail in $(ls $JAILDIR); do