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." warn "No PostgreSQL databases for syncing configured."
elif [[ "$sync_pgsql_databases" = "ALL" ]]; then elif [[ "$sync_pgsql_databases" = "ALL" ]]; then
echononl " Get (all) PostgreSQL databases from $old_server_ip.." 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 if [[ $? -eq 0 ]];then
echo_ok 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 _got_pgsql_databases=true
else else
echo_failed echo_failed
@ -269,18 +281,20 @@ else
_got_pgsql_databases=true _got_pgsql_databases=true
fi fi
if $_got_pgsql_databases ; then if $_got_pgsql_databases ; then
log_file=${log_dir}/sync_pgsql.log log_file=${log_dir}/sync_pgsql.log
> $log_file > $log_file
psql=$(ssh $old_server_ip which psql) psql=$(ssh $old_server_ip which psql 2> /dev/null)
pg_dump=$(ssh $old_server_ip which pg_dump) pg_dump=$(ssh $old_server_ip which pg_dump 2> /dev/null)
pg_dumpall=$(ssh $old_server_ip which pg_dumpall) pg_dumpall=$(ssh $old_server_ip which pg_dumpall 2> /dev/null)
sudo=$(ssh $old_server_ip which sudo) sudo=$(ssh $old_server_ip which sudo 2> /dev/null)
su=$(ssh $old_server_ip which su) su=$(ssh $old_server_ip which su 2> /dev/null)
echo ""
for _db in $_pgsql_databases_remote ; do for _db in $_pgsql_databases_remote ; do
echononl " Sync Database '$_db'.." echononl " Sync Database '$_db'.."
if [[ "${_db}" = "template0" ]] || [[ "${_db}" = "template1" ]] ; then if [[ "${_db}" = "template0" ]] || [[ "${_db}" = "template1" ]] || [[ "${_db}" = "postgres" ]]; then
echo_skipped echo_skipped
continue continue
fi fi
@ -289,13 +303,13 @@ if $_got_pgsql_databases ; then
continue continue
fi 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 | su postgres -lc "psql $_db" >> $log_file 2> $tmp_err_msg
if [[ $? -eq 0 ]];then if [[ $? -eq 0 ]];then
echo_ok echo_ok
else else
echo_failed echo_failed
error "$(cat $tmp_err_msg)" #error "$(cat $tmp_err_msg)"
fi fi
done done