39 lines
873 B
Bash
Executable File
39 lines
873 B
Bash
Executable File
#! /bin/bash
|
|
|
|
skip=${1:-0}
|
|
set -x
|
|
set -e
|
|
backups="$(find /mnt/back/ -maxdepth 1 -mindepth 1 | grep -v '\/\.' | sort -r)"
|
|
if [ -z "${backups}" ]; then
|
|
echo "ERR: no backups to restore" >&2
|
|
exit 0
|
|
fi
|
|
tried=0
|
|
echo Trying backups ${backups}... >&2
|
|
for lastback in ${backups}; do
|
|
((tried+=1))
|
|
if ((tried<=skip)); then
|
|
continue
|
|
fi
|
|
if (
|
|
echo Trying backup from $lastback >&2
|
|
set -e
|
|
service postgresql start
|
|
psql postgres://ffly:pwd@localhost/fireflyiii < "$lastback"
|
|
service postgresql start
|
|
n=0
|
|
until service postgresql status || ((n>10)); do
|
|
sleep 5
|
|
((n+=1))
|
|
done
|
|
until service postgresql status | grep -E 'down|online'; do
|
|
sleep 5
|
|
done
|
|
service postgresql status | grep online
|
|
); then
|
|
exit 0
|
|
fi
|
|
done
|
|
echo "ERR: could not load any backup" >&2
|
|
exit 1
|