Я хочу скопировать ~50GB папку от одного сервера до другого. Это понятно собирается занять долгое время, таким образом, я хотел бы смочь выполнить его "в фоновом режиме". Используя стандартный SCP команда требует, чтобы я сохранил консоль открытой. Я читал о nohup
, который кажется, что это должно добиться цели, но я изо всех сил пытаюсь заставить это работать. Даже это, кажется, требует, чтобы консоль была оставлена открытой - после ввода в команде, nohup
программа остается открытой, и если я нажимаю CTRL+C для выхода из нее затем остановки передачи. Я неправильно понимаю что nohup
? Или как еще я могу достигнуть этого?
Я думаю, было бы легче начать scp
с screen
сессия, и после того как она копирует отсоединение с эти screen
, какое-либо время можно ли вернуться к той экранной сессии и проверить ли, как она идет.
screen
scp foo bar
Ctrl , сопровождаемый d для отсоединения с экрана
Затем, повторно прикрепляют к экрану:
screen -x
Имя nohup
относится к эти HUP
сигнал, который был традиционно отправлен в процессы, когда (телефон-) выравнивают терминал, был соединен до сервера, зависся. nohup
препятствует тому сигналу быть отправленным, даже когда "зависающий" в наше время просто означает "закрывать окно терминала".
tl; доктор Вы хотите просто закрыть окно терминала (или уничтожить соединение SSH на Вашей стороне) вместо того, чтобы регулярно выйти из сервера. nohup
будет поддерживать Ваш процесс в рабочем состоянии, даже если клеммное соединение повредится так или иначе.
Ну, существует немного проблем:
, Если Вы хотите выполнить команду в фоновом режиме, необходимо добавить &
к команде. Что-то как nohup scp file server:path/ &
. Это будет работать в фоне и если Вы закроете консоль, это все еще передаст файл.
Использование sftp
вместо scp
. Это дает намного лучшие результаты проверки производительности (специально для таких больших файлов). SCP является очень медленным. Даже sftp
пакетный режим поддержек: sftp -b <(echo "cd path"; echo "put file") server &