mirror of
https://github.com/erenfro/systemrescue-backup.git
synced 2024-11-14 06:08:59 -05:00
71 lines
1.6 KiB
Text
71 lines
1.6 KiB
Text
|
#!/bin/bash
|
||
|
|
||
|
restoreDir=/etc/restore
|
||
|
pgsqlDir="$restoreDir/postgresql"
|
||
|
scriptDir="$(dirname "$0")"
|
||
|
|
||
|
function readConfig() {
|
||
|
local $config
|
||
|
|
||
|
if [[ -r "${scriptDir}/../config/postgresql.cfg" ]]; then
|
||
|
config="$(readlink -f "${scriptDir}/../config/postgresql.cfg")"
|
||
|
else
|
||
|
exit 2
|
||
|
fi
|
||
|
|
||
|
while read -r -a vals
|
||
|
do
|
||
|
[[ "${vals[*]}" =~ ^#.*$ ]] && continue
|
||
|
[[ -z "${vals[0]}" ]] && continue
|
||
|
if [[ "${vals[0]}" -ge 10 ]]; then
|
||
|
echo "${vals[@]}"
|
||
|
fi
|
||
|
done < "$config"
|
||
|
}
|
||
|
|
||
|
function runBackups() {
|
||
|
local vals
|
||
|
local version
|
||
|
local cluster
|
||
|
|
||
|
while read -r -a vals
|
||
|
do
|
||
|
version="${vals[0]}"
|
||
|
cluster="${vals[1]}"
|
||
|
|
||
|
echo "Backing up PostgreSQL $version - $cluster"
|
||
|
pg_backupcluster "$version" "$cluster" createdirectory || return $?
|
||
|
sudo -u postgres pg_backupcluster "$version" "$cluster" basebackup || return $?
|
||
|
sudo -u postgres pg_backupcluster "$version" "$cluster" dump || return $?
|
||
|
sudo -u postgres pg_backupcluster "$version" "$cluster" expirebasebackups 1 || return $?
|
||
|
sudo -u postgres pg_backupcluster "$version" "$cluster" expiredumps 1 || return $?
|
||
|
done < <(readConfig)
|
||
|
}
|
||
|
|
||
|
hook_before() {
|
||
|
if [[ -d "$pgsqlDir" ]]; then
|
||
|
rm -rf "$pgsqlDir" || exit 1
|
||
|
fi
|
||
|
|
||
|
runBackups || exit $?
|
||
|
}
|
||
|
|
||
|
hook_after() {
|
||
|
rm -rf "$pgsqlDir" || exit 1
|
||
|
}
|
||
|
|
||
|
hook_fail() {
|
||
|
:
|
||
|
}
|
||
|
|
||
|
hook_final() {
|
||
|
:
|
||
|
}
|
||
|
|
||
|
case "$1" in
|
||
|
before) hook_before || exit $? ;;
|
||
|
after) hook_after || exit $? ;;
|
||
|
fail) hook_fail || exit $? ;;
|
||
|
finally) hook_final || exit $? ;;
|
||
|
esac
|