forked from evolix/evobackup
Move check_jail_on functions into bkctld-is-on script
This commit is contained in:
parent
5856cb2011
commit
d9f8ae7036
2
bkctld
2
bkctld
|
@ -29,7 +29,7 @@ case "${subcommand}" in
|
||||||
"inc" | "rm" | "check" | "stats" | "help")
|
"inc" | "rm" | "check" | "stats" | "help")
|
||||||
"${LIBDIR}/bkctld-${subcommand}"
|
"${LIBDIR}/bkctld-${subcommand}"
|
||||||
;;
|
;;
|
||||||
"init")
|
"init" | "is-on")
|
||||||
"${LIBDIR}/bkctld-${subcommand}" "${jail}"
|
"${LIBDIR}/bkctld-${subcommand}" "${jail}"
|
||||||
;;
|
;;
|
||||||
"key" | "port" | "ip")
|
"key" | "port" | "ip")
|
||||||
|
|
|
@ -30,6 +30,6 @@ else
|
||||||
done
|
done
|
||||||
sed -i "s~^AllowUsers .*~${allow}~" "${JAILDIR}/$jail/${SSHD_CONFIG}"
|
sed -i "s~^AllowUsers .*~${allow}~" "${JAILDIR}/$jail/${SSHD_CONFIG}"
|
||||||
notice "${jail} : update ip => ${ip}"
|
notice "${jail} : update ip => ${ip}"
|
||||||
check_jail_on "${jail}" && "${LIBDIR}/bkctld-reload" "${jail}"
|
"${LIBDIR}/bkctld-is-on" "${jail}" && "${LIBDIR}/bkctld-reload" "${jail}"
|
||||||
"${LIBDIR}/bkctld-firewall" "${jail}"
|
"${LIBDIR}/bkctld-firewall" "${jail}"
|
||||||
fi
|
fi
|
||||||
|
|
26
lib/bkctld-is-on
Executable file
26
lib/bkctld-is-on
Executable file
|
@ -0,0 +1,26 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# Check if a jail is on or not
|
||||||
|
# Usage: is-on <jailname>
|
||||||
|
#
|
||||||
|
|
||||||
|
LIBDIR="$(dirname $0)" && . "${LIBDIR}/config"
|
||||||
|
|
||||||
|
jail="${1:-}"
|
||||||
|
if [ ! -n "${jail}" ]; then
|
||||||
|
"${LIBDIR}/bkctld-help" && exit 1
|
||||||
|
fi
|
||||||
|
check_jail "${jail}" || error "${jail} : trying to check inexistant jail"
|
||||||
|
|
||||||
|
jail="${1}"
|
||||||
|
return=1
|
||||||
|
if [ -f "${JAILDIR}/${jail}/${SSHD_PID}" ]; then
|
||||||
|
pid=$(cat "${JAILDIR}/${jail}/${SSHD_PID}")
|
||||||
|
ps -p "${pid}" > /dev/null && return=0
|
||||||
|
fi
|
||||||
|
if [ "${return}" -eq 1 ]; then
|
||||||
|
rm -f "${JAILDIR}/${jail}/${SSHD_PID}"
|
||||||
|
grep -q "${JAILDIR}/${jail}/proc" /proc/mounts && umount --lazy "${JAILDIR}/${jail}/proc/"
|
||||||
|
grep -q "${JAILDIR}/${jail}/dev" /proc/mounts && umount --lazy --recursive "${JAILDIR}/${jail}/dev"
|
||||||
|
fi
|
||||||
|
exit "${return}"
|
|
@ -23,5 +23,5 @@ else
|
||||||
chmod 600 "${JAILDIR}/${jail}/${AUTHORIZED_KEYS}"
|
chmod 600 "${JAILDIR}/${jail}/${AUTHORIZED_KEYS}"
|
||||||
notice "${jail} : update key => ${keyfile}"
|
notice "${jail} : update key => ${keyfile}"
|
||||||
|
|
||||||
check_jail_on "${jail}" && . "${LIBDIR}/bkctld-reload" "${jail}"
|
"${LIBDIR}/bkctld-is-on" "${jail}" && "${LIBDIR}/bkctld-reload" "${jail}"
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -23,6 +23,6 @@ else
|
||||||
fi
|
fi
|
||||||
sed -i "s/^Port .*/Port ${port}/" "${JAILDIR}/$jail/${SSHD_CONFIG}"
|
sed -i "s/^Port .*/Port ${port}/" "${JAILDIR}/$jail/${SSHD_CONFIG}"
|
||||||
notice "${jail} : update port => ${port}"
|
notice "${jail} : update port => ${port}"
|
||||||
check_jail_on "${jail}" && . "${LIBDIR}/bkctld-reload" "${jail}"
|
"${LIBDIR}/bkctld-is-on" "${jail}" && "${LIBDIR}/bkctld-reload" "${jail}"
|
||||||
"${LIBDIR}/bkctld-firewall" "${jail}"
|
"${LIBDIR}/bkctld-firewall" "${jail}"
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -11,7 +11,7 @@ if [ ! -n "${jail}" ]; then
|
||||||
"${LIBDIR}/bkctld-help" && exit 1
|
"${LIBDIR}/bkctld-help" && exit 1
|
||||||
fi
|
fi
|
||||||
check_jail "${jail}" || error "${jail} : trying to reload inexistant jail"
|
check_jail "${jail}" || error "${jail} : trying to reload inexistant jail"
|
||||||
check_jail_on "${jail}" || exit 0
|
"${LIBDIR}/bkctld-is-on" "${jail}" || exit 0
|
||||||
|
|
||||||
pid=$(cat "${JAILDIR}/${jail}/${SSHD_PID}")
|
pid=$(cat "${JAILDIR}/${jail}/${SSHD_PID}")
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ if [ ! -n "${jail}" ]; then
|
||||||
"${LIBDIR}/bkctld-help" && exit 1
|
"${LIBDIR}/bkctld-help" && exit 1
|
||||||
fi
|
fi
|
||||||
check_jail "${jail}" || error "${jail} : trying to remove inexistant jail"
|
check_jail "${jail}" || error "${jail} : trying to remove inexistant jail"
|
||||||
check_jail_on "${jail}" && . "${LIBDIR}/bkctld-stop" "${jail}"
|
"${LIBDIR}/bkctld-is-on" "${jail}" && "${LIBDIR}/bkctld-stop" "${jail}"
|
||||||
|
|
||||||
rm -f "${CONFDIR}/${jail}"
|
rm -f "${CONFDIR}/${jail}"
|
||||||
jail_inode=$(stat --format=%i "${JAILDIR}/${jail}")
|
jail_inode=$(stat --format=%i "${JAILDIR}/${jail}")
|
||||||
|
|
|
@ -13,5 +13,5 @@ if [ ! -n "${jail}" ]; then
|
||||||
"${LIBDIR}/bkctld-help" && exit 1
|
"${LIBDIR}/bkctld-help" && exit 1
|
||||||
fi
|
fi
|
||||||
check_jail "${jail}" || error "${jail} : trying to restart inexistant jail"
|
check_jail "${jail}" || error "${jail} : trying to restart inexistant jail"
|
||||||
check_jail_on "${jail}" && "${LIBDIR}/bkctld-stop" "${jail}"
|
"${LIBDIR}/bkctld-is-on" "${jail}" && "${LIBDIR}/bkctld-stop" "${jail}"
|
||||||
"${LIBDIR}/bkctld-start" "${jail}"
|
"${LIBDIR}/bkctld-start" "${jail}"
|
||||||
|
|
|
@ -11,7 +11,7 @@ if [ ! -n "${jail}" ]; then
|
||||||
"${LIBDIR}/bkctld-help" && exit 1
|
"${LIBDIR}/bkctld-help" && exit 1
|
||||||
fi
|
fi
|
||||||
check_jail "${jail}" || error "${jail} : trying to start inexistant jail"
|
check_jail "${jail}" || error "${jail} : trying to start inexistant jail"
|
||||||
check_jail_on "${jail}" && exit 0
|
"${LIBDIR}/bkctld-is-on" "${jail}" && exit 0
|
||||||
|
|
||||||
cd "${JAILDIR}/${jail}"
|
cd "${JAILDIR}/${jail}"
|
||||||
grep -q "${JAILDIR}/${jail}/proc" /proc/mounts || mount -t proc "proc-${jail}" proc
|
grep -q "${JAILDIR}/${jail}/proc" /proc/mounts || mount -t proc "proc-${jail}" proc
|
||||||
|
|
|
@ -18,11 +18,8 @@ if [ -f "${CONFDIR}/${jail}" ]; then
|
||||||
month=$(grep -c "month" "${CONFDIR}/${jail}")
|
month=$(grep -c "month" "${CONFDIR}/${jail}")
|
||||||
inc="${day}/${month}"
|
inc="${day}/${month}"
|
||||||
fi
|
fi
|
||||||
if ( check_jail_on "${jail}" ); then
|
status="OFF"
|
||||||
status="ON "
|
"${LIBDIR}/bkctld-is-on" "${jail}" && status="ON "
|
||||||
else
|
|
||||||
status="OFF"
|
|
||||||
fi
|
|
||||||
port=$("${LIBDIR}/bkctld-port" "${jail}")
|
port=$("${LIBDIR}/bkctld-port" "${jail}")
|
||||||
ip=$("${LIBDIR}/bkctld-ip" "${jail}"|xargs|tr -s ' ' ',')
|
ip=$("${LIBDIR}/bkctld-ip" "${jail}"|xargs|tr -s ' ' ',')
|
||||||
echo "${jail} ${status} ${port} ${inc} ${ip}" | awk '{ printf("%- 30s %- 10s %- 10s %- 10s %- 40s\n", $1, $2, $3, $4, $5); }'
|
echo "${jail} ${status} ${port} ${inc} ${ip}" | awk '{ printf("%- 30s %- 10s %- 10s %- 10s %- 40s\n", $1, $2, $3, $4, $5); }'
|
||||||
|
|
|
@ -11,7 +11,7 @@ if [ ! -n "${jail}" ]; then
|
||||||
"${LIBDIR}/bkctld-help" && exit 1
|
"${LIBDIR}/bkctld-help" && exit 1
|
||||||
fi
|
fi
|
||||||
check_jail "${jail}" || error "${jail} : trying to stop inexistant jail"
|
check_jail "${jail}" || error "${jail} : trying to stop inexistant jail"
|
||||||
check_jail_on "${jail}" || exit 0
|
"${LIBDIR}/bkctld-is-on" "${jail}" || exit 0
|
||||||
|
|
||||||
pid=$(cat "${JAILDIR}/${jail}/${SSHD_PID}")
|
pid=$(cat "${JAILDIR}/${jail}/${SSHD_PID}")
|
||||||
for conn in $(ps --ppid "${pid}" -o pid=); do
|
for conn in $(ps --ppid "${pid}" -o pid=); do
|
||||||
|
|
|
@ -18,9 +18,7 @@ jail="${1}"
|
||||||
ssh "${NODE}" "${LIBDIR}/bkctld-init" "${jail}" | debug
|
ssh "${NODE}" "${LIBDIR}/bkctld-init" "${jail}" | debug
|
||||||
rsync -a "${JAILDIR}/${jail}/" "${NODE}:${JAILDIR}/${jail}/" --exclude proc/* --exclude sys/* --exclude dev/* --exclude run --exclude var/backup/*
|
rsync -a "${JAILDIR}/${jail}/" "${NODE}:${JAILDIR}/${jail}/" --exclude proc/* --exclude sys/* --exclude dev/* --exclude run --exclude var/backup/*
|
||||||
rsync -a "${CONFDIR}/${jail}" "${NODE}:${CONFDIR}/${jail}"
|
rsync -a "${CONFDIR}/${jail}" "${NODE}:${CONFDIR}/${jail}"
|
||||||
if ( check_jail_on "${jail}" ); then
|
"${LIBDIR}/bkctld-is-on" "${jail}" && ssh "${NODE}" "${LIBDIR}/bkctld-start" "${jail}" | debug
|
||||||
ssh "${NODE}" "${LIBDIR}/bkctld-start" "${jail}" | debug
|
|
||||||
fi
|
|
||||||
if [ -n "${FIREWALL_RULES}" ]; then
|
if [ -n "${FIREWALL_RULES}" ]; then
|
||||||
rsync -a "${FIREWALL_RULES}" "${NODE}:${FIREWALL_RULES}"
|
rsync -a "${FIREWALL_RULES}" "${NODE}:${FIREWALL_RULES}"
|
||||||
ssh "${NODE}" /etc/init.d/minifirewall restart | debug
|
ssh "${NODE}" /etc/init.d/minifirewall restart | debug
|
||||||
|
|
|
@ -11,7 +11,7 @@ if [ ! -n "${jail}" ]; then
|
||||||
"${LIBDIR}/bkctld-help" && exit 1
|
"${LIBDIR}/bkctld-help" && exit 1
|
||||||
fi
|
fi
|
||||||
check_jail "${jail}" || error "${jail} : trying to update inexistant jail"
|
check_jail "${jail}" || error "${jail} : trying to update inexistant jail"
|
||||||
check_jail_on "${jail}" && . "${LIBDIR}/bkctld-stop" "${jail}"
|
"${LIBDIR}/bkctld-is-on" "${jail}" && "${LIBDIR}/bkctld-stop" "${jail}"
|
||||||
|
|
||||||
. "${LIBDIR}/mkjail"
|
. "${LIBDIR}/mkjail"
|
||||||
notice "${jail} : updated jail"
|
notice "${jail} : updated jail"
|
||||||
|
|
|
@ -5,18 +5,3 @@ check_jail() {
|
||||||
[ -d "${JAILDIR}/${jail}" ] && return 0
|
[ -d "${JAILDIR}/${jail}" ] && return 0
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
check_jail_on() {
|
|
||||||
jail="${1}"
|
|
||||||
return=1
|
|
||||||
if [ -f "${JAILDIR}/${jail}/${SSHD_PID}" ]; then
|
|
||||||
pid=$(cat "${JAILDIR}/${jail}/${SSHD_PID}")
|
|
||||||
ps -p "${pid}" > /dev/null && return=0
|
|
||||||
fi
|
|
||||||
if [ "${return}" -eq 1 ]; then
|
|
||||||
rm -f "${JAILDIR}/${jail}/${SSHD_PID}"
|
|
||||||
grep -q "${JAILDIR}/${jail}/proc" /proc/mounts && umount --lazy "${JAILDIR}/${jail}/proc/"
|
|
||||||
grep -q "${JAILDIR}/${jail}/dev" /proc/mounts && umount --lazy --recursive "${JAILDIR}/${jail}/dev"
|
|
||||||
fi
|
|
||||||
return "${return}"
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in a new issue