postgres/OLD/restore_all_pg_dbs.sh.00
2017-02-21 02:33:47 +01:00

47 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11
BACKUP_BASE_DIR="/backup/psql"
if [ ! -d $BACKUP_BASE_DIR ] ; then
echo
echo " Backup directory not found"
echo
exit 1
fi
PSQL_USER=postgres
PSQL_BIN_DIR=/usr/local/pgsql/bin
logfile=restore_db.log
# -- Wiedrherstellung der datanbakuser und datenbankdefinitionen
# --
## restore_file=`find $BACKUP_BASE_DIR -maxdepth 1 -mindepth 1 -type f -printf "%f\n" | grep db_users_databases`
_list=`ls -t ${BACKUP_BASE_DIR}/db_users_databases*`
restore_file=`echo $_list | awk '{print$1}'`
echo -e "\nWiedrherstellung der datanbakuser und datenbankdefinitionen"
echo -e "\tsu $PSQL_USER -c\"${PSQL_BIN_DIR}/psql -f $restore_file template1\"\n"
su $PSQL_USER -c"${PSQL_BIN_DIR}/psql -f $restore_file template1" > $logfile 2>&1
# -- Wiedrherstellung der datanbakdaten
# --
databases=`find $BACKUP_BASE_DIR -maxdepth 1 -mindepth 1 -type d -printf "%f "`
echo "Wiedrherstellung der datanbakdaten"
for db in $databases ; do
_list=`ls -d -t ${BACKUP_BASE_DIR}/$db/*`
file=`echo $_list | awk '{print$1}'`
echo " ${db}: su $PSQL_USER -c\"${PSQL_BIN_DIR}/psql -f $file $db\""
su $PSQL_USER -c"${PSQL_BIN_DIR}/psql -f $file $db" >> $logfile 2>&1
done
echo
exit 0