Как скопировать большие файлы на другой Linux Server независимо от TTY

На самом деле я пытался копировать все файлы в другом директоре. Общий размер файла – 188 ГБ, поэтому его потребуется некоторое время.

Im пытается скопировать для Linux-сервера A-B с помощью этой команды

nohup scp Files-from-Server-A root@xxx.xxx.xxx.xxx:tmp & 

но как только я закрою терминал, он перестанет копировать файлы, но процесс все еще отображается в диспетчере процессов.

4 Solutions collect form web for “Как скопировать большие файлы на другой Linux Server независимо от TTY”

scp обнаруживает, есть ли у него контрольный tty. Если вы запустите его как процесс переднего плана, он покажет индикатор выполнения, но если вы его воспользуетесь, индикатор прогресса исчезнет, ​​поэтому происходят некоторые внутренние проверки. Я бы сделал, как говорит @peterph, и начнет передачу в сеансе tmux или screen . Я не уверен в возможности использования nohup , но просто держу управляющий терминал активным.

Поскольку файл такой большой, если он не сжат, я бы также добавил компрессию к передаче с помощью опции -C scp .

Если это каталог, и вы часто повторяли одну и ту же команду, вам, вероятно, следует использовать rsync, который сначала проверяет, отличаются ли файлы (с контрольными суммами md5) перед их переносом. Вы также можете возобновить большие передачи файлов с --partial опции --partial .

 rsync -avz --partial --progress --rsh=ssh Files-from-Server-A [...] user@B:/tmp/ 

Общий совет – использовать терминальный мультиплексор (например, tmux или screen ) и запустить копию внутри, поскольку это дает одну большую гибкость. При необходимости вы можете отсоединить / снова подключить, чтобы проверить, как работает операция.

Эти программы создают «виртуальные» (безголовые) терминалы, которые отображаются на входе / входе от «реального» терминала (консоль linux, эмуляторы X-терминалов, ssh-соединение …). Поскольку на виртуальные терминалы не влияют прерывания в реальных терминалах (терминальный мультиплексор просто перестает отображать вывод, когда он обнаруживает закрытие IO-устройства и сохраняет сохранение вывода во внутреннем буфере), приложения, работающие внутри, экранируются от SIGHUP. В качестве бонуса они обычно предлагают, по крайней мере, некоторые базовые возможности оконного оформления текста.

Я не уверен в tmux (который активно развивается), но screen GNU должен быть включен в стандартный репозиторий RHEL.

lftp (программа передачи файлов терминала общего назначения) поддерживает sftp (не scp , но если у вас есть scp , у вас есть ssh и, скорее всего, он поддерживает sftp ), и он может переносить передачи в фоновом режиме, автоматически восстанавливать и возобновлять передачу ( после настраиваемой задержки) при сбое и т. д.

Вы не можете использовать rsync ? Такая большая передача обязательно сломается где-то, и я не уверен, что предложенные механизмы могут продолжить работу там, где она прервалась.

  • Предотвращение scp и менее команд, читающих интерактивный скрипт tcsh
  • Перенос миллионов файлов с одного сервера на другой
  • Как скопировать файл с удаленного сервера на локальный компьютер?
  • Вызов сценария Bash ожидает сценария с основным SSH-соединением
  • scp, блокирующий мой сервер (в обоих направлениях)
  • используя команду scp для передачи файлов, сохраняющих одни и те же имена?
  • Как использовать scp с xargs?
  • Передача файлов через ssh, но без scp или sftp
  • используя SCP для подключения к активному / порту?
  • Команда SCP и / или SSH с паролем в строке
  • Настройка доступа SCP для входа без локальной учетной записи
  • Linux и Unix - лучшая ОС в мире.