This commit is contained in:
Christoph 2023-03-15 17:32:42 +01:00
parent 0d891f7c88
commit 5d560321af

View File

@ -257,9 +257,21 @@ if [[ -z "$sync_pgsql_databases" ]]; then
warn "No PostgreSQL databases for syncing configured."
elif [[ "$sync_pgsql_databases" = "ALL" ]]; then
echononl " Get (all) PostgreSQL databases from $old_server_ip.."
_psql_databases=$(ssh $old_server_ip "cd /tmp ; $sudo -u postgres $psql -lt" | grep -v -e"^$" | awk '{print$1}')
_psql_databases=$(ssh $old_server_ip "cd /tmp ; sudo -u postgres psql -lt" 2> $tmp_err_msg | grep -v -e"^$" | awk '{print$1}')
if [[ $? -eq 0 ]];then
echo_ok
declare -i _index=1
for _db in $_psql_databases ; do
if [[ "${_db}" = ":" ]] || [[ "${_db}" = "|" ]] ; then
continue
fi
if [[ $index -eq 1 ]] ; then
_pgsql_databases_remote="${_db}"
else
_pgsql_databases_remote="${_pgsql_databases_remote} ${_db}"
fi
(( _index++ ))
done
_got_pgsql_databases=true
else
echo_failed
@ -269,18 +281,20 @@ else
_got_pgsql_databases=true
fi
if $_got_pgsql_databases ; then
log_file=${log_dir}/sync_pgsql.log
> $log_file
psql=$(ssh $old_server_ip which psql)
pg_dump=$(ssh $old_server_ip which pg_dump)
pg_dumpall=$(ssh $old_server_ip which pg_dumpall)
sudo=$(ssh $old_server_ip which sudo)
su=$(ssh $old_server_ip which su)
psql=$(ssh $old_server_ip which psql 2> /dev/null)
pg_dump=$(ssh $old_server_ip which pg_dump 2> /dev/null)
pg_dumpall=$(ssh $old_server_ip which pg_dumpall 2> /dev/null)
sudo=$(ssh $old_server_ip which sudo 2> /dev/null)
su=$(ssh $old_server_ip which su 2> /dev/null)
echo ""
for _db in $_pgsql_databases_remote ; do
echononl " Sync Database '$_db'.."
if [[ "${_db}" = "template0" ]] || [[ "${_db}" = "template1" ]] ; then
if [[ "${_db}" = "template0" ]] || [[ "${_db}" = "template1" ]] || [[ "${_db}" = "postgres" ]]; then
echo_skipped
continue
fi
@ -289,13 +303,13 @@ if $_got_pgsql_databases ; then
continue
fi
ssh $old_server_ip "cd /tmp ; $sudo -u postgres $pg_dump -c $_db" \
ssh $old_server_ip "cd /tmp ; sudo -u postgres $pg_dump -c $_db" 2> $tmp_err_msg \
| su postgres -lc "psql $_db" >> $log_file 2> $tmp_err_msg
if [[ $? -eq 0 ]];then
echo_ok
else
echo_failed
error "$(cat $tmp_err_msg)"
#error "$(cat $tmp_err_msg)"
fi
done