Thread

  1. RE: Perl and pg_dump

    WOLF, PATRICK <patrick.wolf@aerojet.com> — 2000-07-10T22:48:42Z

    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 
    ---------------------------------------------- 
    
    
    
  2. RE: Perl and pg_dump

    D. Duccini <duccini@backpack.com> — 2000-07-11T02:05:08Z

    true, but with the su, you only do it once to set up the crontab
    
    it more "oo" this way
    
    On Mon, 10 Jul 2000, WOLF, PATRICK wrote:
    
    > 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 
    > ---------------------------------------------- 
    > 
    
    
    -----------------------------------------------------------------------------
    david@backpack.com            BackPack Software, Inc.        www.backpack.com
    +1 651.645.7550 voice       "Life is an Adventure.    
    +1 651.645.9798 fax            Don't forget your BackPack!"   
    -----------------------------------------------------------------------------