47 lines
1.3 KiB
Bash
Executable File
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
|