Как можно скопировать очень большие файлы/каталоги с одного хоста на другой «офлайн»?

Как можно скопировать очень большие файлы/каталоги с одного хоста на другой «офлайн»?

Я намерен получить vps-сервер в ближайшее время для некоторых ресурсоемких сайтов, которыми я управляю. Я живу в стране, где скорость интернета 1 Мбит/с — роскошь, а постоянное бесперебойное электричество — миф.

Вот чего я пытаюсь добиться:

  • Как скопировать файлы и каталоги с исходного сервера на целевой сервер через SSH / SCP.
  • Как обеспечить копирование файлов между серверами, даже если отключится интернет или электричество?
  • Как сделать так, чтобы файлы продолжали копироваться между обоими серверами, если я закрою окно терминала.

Я знаю о возможности копирования через SCP, но, похоже, оно не работает, когда я отключаюсь от сети.

решение1

rsync -azvP source_directory user@remote:remote_directory

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

Вот также объяснение каждого флага.http://explainshell.com/explain?cmd=rsync+-azvP

Если вы хотите разрешить запуск на сервере без входа в систему, вы можете передать указанную выше команду команде nohup. Вы также можете запустить ее в сеансе tmux, что позволит вам отслеживать ход выполнения (или перезапустить команду), прикрепив сеанс при входе в систему на своей машине.

Вы можете начать сеанс tmux, набрав tmuxна своем сервере. Затем вы можете запустить команду rsync и отсоединиться от сеанса tmux, набрав CTRL+bи затем d. Выход из системы не повлияет на процедуру копирования. Когда вы снова войдете в систему, вы можете набрать tmux attachи сможете увидеть ход выполнения операции копирования.

Надеюсь, это поможет! Дайте мне знать, если я смогу что-то прояснить.

решение2

Я настоятельно рекомендую вам взглянуть на использование команды rsync. Команда rsync полезна, поскольку она может легко возобновлять передачи. По умолчанию rsync работает через транспорт SSH, вам просто нужен двоичный файл rsync на клиенте и сервере.

Rsync определит, что уже было передано, и передаст только те файлы и части файлов, которые еще не были переданы.

решение3

Я считаю, что это должно решить проблему:

nohup scp -r big-folder remote-machine:/home/user/ &

Эта команда запускает процесс копирования и продолжит копирование после выхода из системы.

Связанный контент