diff --git a/sync_from_old_server.sh b/sync_from_old_server.sh index 34a63ee..57b2a19 100755 --- a/sync_from_old_server.sh +++ b/sync_from_old_server.sh @@ -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