evobackup/bkctld

83 lines
2.4 KiB
Plaintext
Raw Normal View History

#!/bin/sh
2016-12-20 11:04:24 +01:00
#
# bkctld is a shell script to create and manage a backup server which will
# handle the backup of many servers (clients).
#
2020-04-08 17:51:56 +02:00
# Authors: Victor Laborie <vlaborie@evolix.fr>
# Jérémy Lecour <jlecour@evolix.fr>
# Benoît Série <bserie@evolix.fr>
# Gregory Colpart <reg@evolix.fr>
# Romain Dessort <rdessort@evolix.fr>
# Tristan Pilat <tpilat@evolix.fr>
# Licence: AGPLv3
#
2016-12-18 15:45:15 +01:00
set -u
if [ "$(id -u)" -ne 0 ]; then
echo "You need to be root to run ${0} !" >&2
exit 1
fi
2019-01-04 13:51:05 +01:00
2020-04-08 17:53:28 +02:00
basedir=$(dirname "$0")
if [ "${basedir}" = "/usr/local/sbin" ] && [ -d "/usr/local/lib/bkctld" ]; then
LIBDIR='/usr/local/lib/bkctld'
elif [ "${basedir}" = "/usr/sbin" ] && [ -d "/usr/lib/bkctld" ]; then
LIBDIR='/usr/lib/bkctld'
elif [ -d './lib' ]; then
LIBDIR='lib'
else
echo "Failed to find a suitable lib directory for bkctld." >&2
exit 1
2020-04-08 17:53:28 +02:00
fi
2020-04-02 23:39:26 +02:00
# shellcheck source=lib/includes
2020-04-02 00:31:57 +02:00
. "${LIBDIR}/includes"
2019-01-04 13:51:05 +01:00
subcommand="${1:-}"
case "${subcommand}" in
"inc" | "rm" | "check" | "stats" | "help" | "list")
2019-01-04 13:51:05 +01:00
"${LIBDIR}/bkctld-${subcommand}"
;;
"check-incs")
option="${2:-}"
if [ "${option}" = "all" ] || [ -z "${option}" ]; then
"${LIBDIR}/bkctld-check-incs"
elif [ "${option}" = "last" ]; then
"${LIBDIR}/bkctld-check-last-incs"
else
"${LIBDIR}/bkctld-help"
exit 1
fi
;;
2020-04-02 23:14:34 +02:00
"init" | "is-on")
jail_name="${2:-}"
2020-04-02 23:14:34 +02:00
"${LIBDIR}/bkctld-${subcommand}" "${jail_name}"
2019-01-04 13:51:05 +01:00
;;
"key" | "port" | "ip")
jail_name="${2:-}"
option="${3:-}"
2020-04-02 23:14:34 +02:00
"${LIBDIR}/bkctld-${subcommand}" "${jail_name}" "${option}"
2019-01-04 13:51:05 +01:00
;;
"start" | "stop" | "reload" | "restart" | "sync" | "update" | "remove" | "firewall")
jail_name="${2:-}"
2020-04-02 23:14:34 +02:00
if [ "${jail_name}" = "all" ]; then
"${LIBDIR}/bkctld-list" | xargs --no-run-if-empty --max-args=1 --max-procs=0 "${LIBDIR}/bkctld-${subcommand}"
2020-04-02 13:40:48 +02:00
else
2020-04-02 23:14:34 +02:00
"${LIBDIR}/bkctld-${subcommand}" "${jail_name}"
2020-04-02 13:40:48 +02:00
fi
2019-01-04 13:51:05 +01:00
;;
"status")
jail_name="${2:-}"
2020-04-02 23:14:34 +02:00
if [ "${jail_name}" = "all" ] || [ -z "${jail_name}" ]; then
"${LIBDIR}/bkctld-list" | xargs --no-run-if-empty --max-args=1 "${LIBDIR}/bkctld-${subcommand}"
2020-04-02 13:40:48 +02:00
else
2020-04-02 23:14:34 +02:00
"${LIBDIR}/bkctld-${subcommand}" "${jail_name}"
2020-04-02 13:40:48 +02:00
fi
2019-01-04 13:51:05 +01:00
;;
*)
"${LIBDIR}/bkctld-help"
exit 1
;;
2019-01-04 13:51:05 +01:00
esac