diff --git a/bkctld b/bkctld index 80a93ef..d50e8e8 100755 --- a/bkctld +++ b/bkctld @@ -26,7 +26,7 @@ if [ ! -x "${LIBDIR}/bkctld-${subcommand}" ]; then fi case "${subcommand}" in - "inc" | "rm" | "check" | "stats" | "help") + "inc" | "rm" | "check" | "stats" | "help" | "list") "${LIBDIR}/bkctld-${subcommand}" ;; "init" | "is-on") @@ -37,17 +37,14 @@ case "${subcommand}" in ;; "start" | "stop" | "reload" | "restart" | "sync" | "update" | "remove" | "firewall") if [ "${jail}" = "all" ]; then - ls "${JAILDIR}"|xargs --no-run-if-empty --max-args=1 --max-procs=0 "${LIBDIR}/bkctld-${subcommand}" + "${LIBDIR}/bkctld-list"|xargs --no-run-if-empty --max-args=1 --max-procs=0 "${LIBDIR}/bkctld-${subcommand}" else "${LIBDIR}/bkctld-${subcommand}" "${jail}" fi ;; "status") if [ -z "${jail}" ]; then - jails=$(ls "${JAILDIR}") - for jail in ${jails}; do - "${LIBDIR}/bkctld-${subcommand}" "${jail}" - done + "${LIBDIR}/bkctld-list"|xargs --no-run-if-empty --max-args=1 "${LIBDIR}/bkctld-${subcommand}" else "${LIBDIR}/bkctld-${subcommand}" "${jail}" fi diff --git a/lib/bkctld-check b/lib/bkctld-check index df3fd29..a5faced 100755 --- a/lib/bkctld-check +++ b/lib/bkctld-check @@ -32,8 +32,7 @@ if [ -b "${BACKUP_DISK}" ]; then fi fi -jails=$(ls "${JAILDIR}") -for jail in ${jails}; do +for jail in $("${LIBDIR}/bkctld-list"); do if [ -f "${JAILDIR}/${jail}/var/log/lastlog" ]; then last_conn=$(stat --format=%Y "${JAILDIR}/${jail}/var/log/lastlog") date_diff=$(( (cur_time - last_conn) / (60*60) )) diff --git a/lib/bkctld-inc b/lib/bkctld-inc index 7a04d2b..3ee7fb8 100755 --- a/lib/bkctld-inc +++ b/lib/bkctld-inc @@ -7,8 +7,7 @@ LIBDIR="$(dirname $0)" && . "${LIBDIR}/config" date=$(date +"%Y-%m-%d-%H") -jails=$(ls "${JAILDIR}") -for jail in ${jails}; do +for jail in $("${LIBDIR}/bkctld-list"); do inc="${INCDIR}/${jail}/${date}" mkdir -p "${INCDIR}/${jail}" if [ ! -d "${inc}" ]; then diff --git a/lib/bkctld-list b/lib/bkctld-list new file mode 100755 index 0000000..f7f4f85 --- /dev/null +++ b/lib/bkctld-list @@ -0,0 +1,12 @@ +#!/bin/sh +# +# List jails +# Usage: list +# + +set -eu + +LIBDIR="$(dirname $0)" && . "${LIBDIR}/config" + +[ -d "${JAILDIR}" ] || exit 0 +find "${JAILDIR}" -mindepth 1 -maxdepth 1 -type d|sed 's!.*/!!' diff --git a/lib/bkctld-rm b/lib/bkctld-rm index a89c0c5..6770c57 100755 --- a/lib/bkctld-rm +++ b/lib/bkctld-rm @@ -19,8 +19,7 @@ if [ -f "${pidfile}" ]; then rm "${pidfile}" fi echo "${$}" > "${pidfile}" -jails=$(ls "${JAILDIR}") -for jail in ${jails}; do +for jail in $("${LIBDIR}/bkctld-list"); do incs=$(ls "${INCDIR}/${jail}") if [ -f "${CONFDIR}/${jail}" ]; then keepfile="${CONFDIR}/.keep-${jail}"