У меня есть один старый сервер Ubuntu и один более новый сервер Debian, и я переношу данные со старого на новый. Я хочу использовать rsync для передачи данных, чтобы сделать окончательную миграцию проще и быстрее, чем эквивалентный процесс tar / scp / untar.
В качестве примера я хочу синхронизировать домашние папки по одному на новом сервере. Это требует корневого доступа на обоих концах, так как не все файлы на стороне источника доступны для чтения всем, и место назначения должно быть записано с правильными разрешениями в / home. Я не могу понять, как предоставить rsync root-доступ с обеих сторон.
Я видел несколько связанных вопросов, но ни один из них не совсем соответствует тому, что я пытаюсь сделать.
У меня есть sudo, настроенный и работающий на обоих серверах.
Если ваши данные не очень конфиденциальны, вы можете использовать
tar
иsocat
. По моему опыту это часто быстрее, чемrsync
по ssh.Вам нужно
socat
илиnetcat
с обеих сторон.На целевом хосте перейдите в каталог, куда вы хотите поместить свои данные, после этого запустите:
socat TCP-LISTEN:4444 - | tar xzf -
Если целевой хост прослушивает, запустите его на источнике, например:
tar czf - /home/fred /home/ | socat - TCP:ip-of-remote-server:4444
Для этой настройки вам понадобится надежное соединение между двумя серверами.
источник
Хорошо, я собрал все ключи, чтобы получить что-то, что работает для меня.
Давайте назовем серверы "src" и "dst".
Настройте пару ключей для пользователя root на конечном сервере и скопируйте открытый ключ на исходный сервер:
Добавьте открытый ключ к авторизованным ключам root на исходном сервере.
Вернитесь на конечный сервер и перенесите данные с помощью rsync:
источник