mirror of
https://github.com/erenfro/systemrescue-backup.git
synced 2024-11-14 14:19:00 -05:00
67 lines
1.4 KiB
Text
67 lines
1.4 KiB
Text
|
#!/bin/bash
|
||
|
|
||
|
restoreDir=/etc/restore
|
||
|
consulDir="/var/backups/consul"
|
||
|
scriptDir="$(dirname "$0")"
|
||
|
|
||
|
readConfig() {
|
||
|
if [[ -r "${scriptDir}/../config/consul_backup.cfg" ]]; then
|
||
|
source "${scriptDir}/../config/consul_backup.cfg"
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
check() {
|
||
|
if [[ -d "$consulDir" ]]; then
|
||
|
echo "Cleaning out old Consul backups..."
|
||
|
rm -f "$consulDir"/* || return 1
|
||
|
else
|
||
|
mkdir -p "$consulDir" | return 1
|
||
|
fi
|
||
|
|
||
|
if [[ -n "$CONSUL_PATH" ]]; then
|
||
|
if [[ -x "${CONSUL_PATH}/consul" ]]; then
|
||
|
echo "Found Consul in $CONSUL_PATH"
|
||
|
else
|
||
|
echo "FATAL: Cannot execute Consul in $CONSUL_PATH"
|
||
|
return 3
|
||
|
fi
|
||
|
else
|
||
|
if ! which consul &>/dev/null; then
|
||
|
echo "Cannot find Consul in PATH"
|
||
|
return 2
|
||
|
fi
|
||
|
if [[ -x "$(which consul)" ]]; then
|
||
|
CONSUL_PATH="$(dirname "$(which consul)")"
|
||
|
echo "Found Consul in $CONSUL_PATH"
|
||
|
else
|
||
|
echo "FATAL: Cannot execute Consul"
|
||
|
return 3
|
||
|
fi
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
hook_before() {
|
||
|
readConfig
|
||
|
check || exit $?
|
||
|
${CONSUL_PATH}/consul snapshot save "$consulDir/consul.snap"
|
||
|
}
|
||
|
|
||
|
hook_after() {
|
||
|
:
|
||
|
}
|
||
|
|
||
|
hook_fail() {
|
||
|
:
|
||
|
}
|
||
|
|
||
|
hook_final() {
|
||
|
:
|
||
|
}
|
||
|
|
||
|
case "$1" in
|
||
|
before) hook_before || exit $?;;
|
||
|
after) hook_after || exit $?;;
|
||
|
fail) hook_fail || exit $?;;
|
||
|
finally) hook_final || exit $?;;
|
||
|
esac
|