# give backup dir the good uid and permissions
# (in respect to the vserver, if $usevserver = yes)
-pguid=`getent passwd postgres | awk -F: '{print $3}'`
+if [ $usevserver = yes ]; then
+ pguid=`$VSERVER $vsname exec getent passwd postgres | awk -F: '{print $3}'`
+else
+ pguid=`getent passwd postgres | awk -F: '{print $3}'`
+fi
[ -n "$pguid" ] || \
fatal "No user called postgres`[ $usevserver = no ] || echo \" on vserver $vsname\"`."
debug "chown $pguid $vroot$backupdir"
# if $databases = all, use pg_dumpall
if [ "$databases" == "all" ]; then
if [ $usevserver = yes ]; then
- execstr='$VSERVER $vsname exec su - postgres -c "$PGSQLDUMPALL > $backupdir/${vsname}.sql"'
+ execstr="$VSERVER $vsname exec su - postgres -c \"$PGSQLDUMPALL > $backupdir/${vsname}.sql\""
else
- execstr='su - postgres -c "$PGSQLDUMPALL > $backupdir/${localhost}-all.sql"'
+ execstr="su - postgres -c \"$PGSQLDUMPALL > $backupdir/${localhost}-all.sql\""
fi
debug "$execstr"
if [ ! $test ]; then
- output=`$execstr 2>&1`
+ output=`eval $execstr 2>&1`
code=$?
if [ "$code" == "0" ]; then
debug $output
for db in $databases; do
if [ $usevserver = yes ]
then
- execstr='$VSERVER $vsname exec su - postgres -c "$PGSQLDUMP $db > $backupdir/${db}.sql"'
+ execstr="$VSERVER $vsname exec su - postgres -c \"$PGSQLDUMP $db > $backupdir/${db}.sql\""
else
- execstr='su - postgres -c "$PGSQLDUMP $db > $backupdir/${db}.sql"'
+ execstr="su - postgres -c \"$PGSQLDUMP $db > $backupdir/${db}.sql\""
fi
debug "$execstr"
if [ ! $test ]; then
- output=`$execstr 2>&1`
+ output=`eval $execstr 2>&1`
code=$?
if [ "$code" == "0" ]; then
debug $output