RE: Perl and pg_dump

WOLF, PATRICK <patrick.wolf@aerojet.com>

From: patrick.wolf@Aerojet.com (WOLF, PATRICK)
To: "'James Hall'" <James.Hall@RadioShack.com>, pgsql-novice@postgresql.org
Date: 2000-07-10T22:48:42Z
Lists: pgsql-novice
How about 'su -c scriptname postgres' called from cron where scriptname is
the name of the script you're wanting to run and postgres is the postgres
super user.  Basically this would be like su'ing to user postgres and then
running the script.
 
Pat

-----Original Message-----
From: James Hall [mailto:James.Hall@RadioShack.com]
Sent: Monday, July 10, 2000 3:55 PM
To: pgsql-novice@postgresql.org
Subject: [NOVICE] Perl and pg_dump



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 
----------------------------------------------