День добрый. Имею следующий скрипт (в bash не силён делаю только первые шаги)
#!/bin/bash
d=$(date)
if [ ! -f /script/scriptDPlog ];
touch /script/scriptDPlog
#chown postgres:dracon /script/scriptDPlog
echo $d >/script/scriptDPlog
echo "Skript run" >> /script/scriptDPlog
for DBNAME in $(psql -q -c "\t" -c "\a" -c "SELECT datname FROM pg_database WHERE NOT datistemplate AND datname <> 'postgres';")
do
dropdb -f $DBNAME
echo "Logical Replication Master-Slave start" >> /script/scriptDPlog
#pg_dumpall --host=192.168.250.161 --no-password --no-privileges | psql >> /script/scriptDPlog
pg_dumpall --database=postgres --host=192.168.250.160 --no-password --globals-only --no-privileges | pg_dump --dbname "automat" --host=192.168.250.160 --no-password --create | psql >> /script/scriptDPlog
done
then
echo $d >/script/scriptDPlog
echo "Skript run" >> /script/scriptDPlog
for DBNAME in $(psql -q -c "\t" -c "\a" -c "SELECT datname FROM pg_database WHERE NOT datistemplate AND datname <> 'postgres';")
do
dropdb -f $DBNAME
echo "Logical Replication Master-Slave start" >> /script/scriptDPlog
#pg_dumpall --host=192.168.250.161 --no-password --no-privileges | psql >> /script/scriptDPlog
pg_dumpall --database=postgres --host=192.168.250.160 --no-password --globals-only --no-privileges | pg_dump --dbname "automat" --host=192.168.250.160 --no-password --create | psql >> /script/scriptDPlog
done
fi
Проблема в следующем - команда
pg_dumpall --database=postgres --host=192.168.250.160 --no-password --globals-only --no-privileges | pg_dump --dbname "automat" --host=192.168.250.160 --no-password --create | psql >> /script/scriptDPlog
Отрабатывает дважды. И в if и в then.
То есть создан или не фйал лога (/script/scriptDPlog) без разницы - pg_dumpall отрабатывает 2 раза.
Подскажите где ошибся ?