From 6b015afc1ed4d2be5e48e77eea1ca65cbcf69a1e Mon Sep 17 00:00:00 2001 From: intrigeri Date: Wed, 1 Nov 2006 18:26:41 +0000 Subject: [PATCH] pgsql: support PGSQLUSER for real (Closes: #396578) --- ChangeLog | 3 +++ examples/example.pgsql | 5 ++++- handlers/pgsql | 20 ++++++++++---------- handlers/pgsql.helper | 5 +++++ src/backupninja.in | 1 + 5 files changed, 23 insertions(+), 11 deletions(-) diff --git a/ChangeLog b/ChangeLog index a513d5a..58414ba 100644 --- a/ChangeLog +++ b/ChangeLog @@ -7,6 +7,9 @@ version 0.9.5 -- unreleased sys: . Fixed typo breaking things for VServers. . Fix bug when vrootdir is on its own partition (Closes: #395928) + pgsql: + . Support configuring PGSQLUSER for real, and document it a bit + (Closes: #396578) fixed automake 'make install' bug that failed if /etc/backup.d already existed diff --git a/examples/example.pgsql b/examples/example.pgsql index d9aab42..42f045e 100644 --- a/examples/example.pgsql +++ b/examples/example.pgsql @@ -17,4 +17,7 @@ # compress = < yes | no > (default = yes) # if yes, compress the pg_dump/pg_dumpall output. - +### You can also set the following variables in /etc/backupninja.conf: +# PGSQLDUMP: pg_dump path (default: /usr/bin/pg_dump) +# PGSQLDUMPALL: pg_dumpall path (default: /usr/bin/pg_dumpall) +# PGSQLUSER: user running PostgreSQL (default: postgres) diff --git a/handlers/pgsql b/handlers/pgsql index 1b91624..fb8fa4f 100644 --- a/handlers/pgsql +++ b/handlers/pgsql @@ -64,10 +64,10 @@ fi if [ $usevserver = yes ]; then pguid=`$VSERVER $vsname exec getent passwd $PGSQLUSER | awk -F: '{print $3}'` else - pguid=`getent passwd postgres | awk -F: '{print $3}'` + pguid=`getent passwd $PGSQLUSER | awk -F: '{print $3}'` fi [ -n "$pguid" ] || \ - fatal "No user called postgres`[ $usevserver = no ] || echo \" on vserver $vsname\"`." + fatal "No user called $PGSQLUSER`[ $usevserver = no ] || echo \" on vserver $vsname\"`." debug "chown $pguid $vroot$backupdir" chown $pguid $vroot$backupdir debug "chmod 700 $vroot$backupdir" @@ -77,15 +77,15 @@ chmod 700 $vroot$backupdir if [ "$databases" == "all" ]; then if [ $usevserver = yes ]; then if [ "$compress" == "yes" ]; then - execstr="$VSERVER $vsname exec su - postgres -c \"$PGSQLDUMPALL | $GZIP > $backupdir/${vsname}.sql.gz\"" + execstr="$VSERVER $vsname exec su - $PGSQLUSER -c \"$PGSQLDUMPALL | $GZIP > $backupdir/${vsname}.sql.gz\"" else - execstr="$VSERVER $vsname exec su - postgres -c \"$PGSQLDUMPALL > $backupdir/${vsname}.sql\"" + execstr="$VSERVER $vsname exec su - $PGSQLUSER -c \"$PGSQLDUMPALL > $backupdir/${vsname}.sql\"" fi else if [ "$compress" == "yes" ]; then - execstr="su - postgres -c \"$PGSQLDUMPALL | $GZIP > $backupdir/${localhost}-all.sql.gz\"" + execstr="su - $PGSQLUSER -c \"$PGSQLDUMPALL | $GZIP > $backupdir/${localhost}-all.sql.gz\"" else - execstr="su - postgres -c \"$PGSQLDUMPALL > $backupdir/${localhost}-all.sql\"" + execstr="su - $PGSQLUSER -c \"$PGSQLDUMPALL > $backupdir/${localhost}-all.sql\"" fi fi debug "$execstr" @@ -106,15 +106,15 @@ else for db in $databases; do if [ $usevserver = yes ]; then if [ "$compress" == "yes" ]; then - execstr="$VSERVER $vsname exec su - postgres -c \"$PGSQLDUMP $db | $GZIP > $backupdir/${db}.sql.gz\"" + execstr="$VSERVER $vsname exec su - $PGSQLUSER -c \"$PGSQLDUMP $db | $GZIP > $backupdir/${db}.sql.gz\"" else - execstr="$VSERVER $vsname exec su - postgres -c \"$PGSQLDUMP $db | > $backupdir/${db}.sql\"" + execstr="$VSERVER $vsname exec su - $PGSQLUSER -c \"$PGSQLDUMP $db | > $backupdir/${db}.sql\"" fi else if [ "$compress" == "yes" ]; then - execstr="su - postgres -c \"$PGSQLDUMP $db | $GZIP > $backupdir/${db}.sql.gz\"" + execstr="su - $PGSQLUSER -c \"$PGSQLDUMP $db | $GZIP > $backupdir/${db}.sql.gz\"" else - execstr="su - postgres -c \"$PGSQLDUMP $db > $backupdir/${db}.sql\"" + execstr="su - $PGSQLUSER -c \"$PGSQLDUMP $db > $backupdir/${db}.sql\"" fi fi debug "$execstr" diff --git a/handlers/pgsql.helper b/handlers/pgsql.helper index 2b05339..8024616 100644 --- a/handlers/pgsql.helper +++ b/handlers/pgsql.helper @@ -96,6 +96,11 @@ $pgsql_databases # if yes, compress the pg_dump/pg_dumpall output. $pgsql_compress +### You can also set the following variables in backupninja.conf: +# PGSQLDUMP: pg_dump path (default: /usr/bin/pg_dump) +# PGSQLDUMPALL: pg_dumpall path (default: /usr/bin/pg_dumpall) +# PGSQLUSER: user running PostgreSQL (default: postgres) + EOF chmod 600 $next_filename diff --git a/src/backupninja.in b/src/backupninja.in index 920d89e..8d1257f 100755 --- a/src/backupninja.in +++ b/src/backupninja.in @@ -450,6 +450,7 @@ getconf MYSQLHOTCOPY /usr/bin/mysqlhotcopy getconf MYSQLDUMP /usr/bin/mysqldump getconf PGSQLDUMP /usr/bin/pg_dump getconf PGSQLDUMPALL /usr/bin/pg_dumpall +getconf PGSQLUSER postgres getconf GZIP /bin/gzip getconf RSYNC /usr/bin/rsync getconf admingroup root -- 2.30.2