This may not be the right place to post this question, but I had to start somewhere.
I have a small perl script that is supposed to run pg_dump daily to backup databases.
The script is called via the cron on a Redhat 6.1 system with PostgreSQL 6.5.
The error that I receive when cron attempts to run the script is:
Connection to database 'template1' failed.
FATAL 1: SetUserId: user 'root' is not in 'pg_shadow'
I know root isn't in pg_shadow, and I don't want it there (I _do_ know better than to do things as root ;)).
How can I tell either Linux, PostgreSQL or the script to use another user (Postgres?) to run the script?
A copy of the script is below.
TIA-
Jim
--------------------------------------------
#!/bin/sh
PSQL=/usr/bin/psql
DUMP=/usr/bin/pg_dump
PREFIX=`date +%j`
BACKUP_DIR=/data/pgsql/data
Databases=`$PSQL -tq -d template1 -c "select datname from pg_database"`
renice 20 $$
echo Backup started ...
for db in `echo $Databases`
do
echo "time: `date +%H%M%S` - Backup of $db in progress ..."
$DUMP -D $db > $BACKUP_DIR/$PREFIX.$db
echo "time: `date +%H%M%S` - Backup of $db finished ..."
done
echo Backup finished
----------------------------------------------