some basic PostgreSQL orchestration from Bash
I had to designed some scripts for migration, upgrade and rebuild PostgreSQL. Some fragments can be useful for others:
Prolog:
#!/bin/bash # Installation prefix prefix=/usr/local/pgsql PGCTL="$prefix/bin/pg_ctl" PGUSER=postgres if [ ! -n "$PGDATA" ]; then PGDATA="$prefix/data" fi
Ensure a stop of PostgreSQL, continue when server is down:
echo "shutdown server"
su - $PGUSER -c "$PGCTL status -D $PGDATA"
if [ $? != 1 ]; then
su - $PGUSER -c "$PGCTL stop -D $PGDATA -m fast"
if [ $? != 1 -a $? != 0 ]; then
su - $PGUSER -c "$PGCTL status -D $PGDATA"
while [ $? != 1 -a $? != 3 ]; do
echo "PostgreSQL still running.."
sleep 1
su - $PGUSER -c "$PGCTL status -D $PGDATA"
done
fi
fi
Start server and continue when server is ready to accept connection:
echo "start server" /etc/init.d/pgsql start $prefix/bin/pg_isready while [ $? != 0 ]; do sleep 1; $prefix/bin/pg_isready done


0 Comments:
Post a Comment
Subscribe to Post Comments [Atom]
<< Home