Я пытаюсь сделать pg_dump с одного сервера и одновременно восстановить на другом сервере.
Команда на исходном сервере (192.168.3.94):
pg_dumpall -v | nc 192.168.3.95 4000
Команда на целевом сервере (192.168.3.95):
nc -l 4000 | psql mydb
Теперь я запускаю это со своего ПК через Putty. Поскольку этот процесс занимает ~ 5 часов, я хочу запустить задания в фоновом режиме и закрыть окна терминала. Но я не могу понять, как запустить обе команды в фоновом режиме, а также выйти из оболочки.
Помогите!
Я бы использовал экран. Если вы запускаете каждый конец в сеансе экрана, вы можете отсоединить его (Ctrl-d) и выйти из системы, оставив его работающим.
Обязательно включите '-d' в вашем демоне прослушивания, у меня возникли проблемы с netcat, даже в режиме прослушивания, а не форк, потому что он ожидает stdin.
Чтобы запустить процесс, который является как фоновым, так и отсоединенным от запущенной оболочки, вы можете сделать следующее (используя свой пример):
(pg_dumpall -v | nc 192.168.3.95 4000 &)
pstree
здесь пригодится, чтобы убедиться, что он отсоединен (или ps -ejH
если у вас его нет)