Как передавать файлы с помощью Rsync по SSH

Linux Logo Scripts

Rsync означает "удаленная синхронизация". Команда rsync позволяет передавать и синхронизировать данные между различными машинами и каталогами. Используя протокол Secure Shell (SSH), вы можете безопасно копировать файлы в другое место.

Инструмент rsync имеет множество преимуществ по сравнению с другими методами копирования файлов. Он использует сжатие и декомпрессию при отправке и получении файлов. Инструмент передает только новые или обновленные файлы, экономя пропускную способность и ускоряя передачу.

Следуя этому руководству, вы узнаете, как использовать rsync через SSH для передачи или копирования файлов.

Проверка установки Rsync

В большинстве последних дистрибутивов Linux по умолчанию установлен rsync. Чтобы проверить, установлен ли в вашей системе rsync, выполните команду установки.

Для машин Debian и Ubuntu используйте apt-get:

Если rsync уже установлен, в выводе будет показана текущая версия инструмента.

проверка установки rsync в ubuntu

На машинах на базе RPM, таких как CentOS, используйте:

проверка установки rsync в centos

Передача файлов с помощью Rsync по SSH

Прежде чем начать передачу файлов и каталогов с помощью rsync по SSH, убедитесь, что вы можете использовать SSH для подключения к удаленному серверу. Убедившись в этом, можно приступать к резервному копированию данных. Убедитесь, что на целевой системе достаточно места для хранения данных.

Синтаксис для копирования файлов на удаленный сервер по SSH с помощью команды rsync следующий:

[SourceFile] - Имя файла или каталога для передачи

[user] - Пользователь, для авторизации на удаленном сервере

[IP] - IP адрес или доменное имя удаленного сервера

[Target] - Путь для копирования файлов на удаленном сервере

При каждом запуске команды rsync необходимо вводить пароль. Чтобы избежать этого, вы можете установить аутентификацию на основе ключей SSH. Вы можете опустить имя пользователя в команде, если хотите использовать текущего зарегистрированного пользователя.

Примеры команд rsync

Далее в руководстве приведены примеры наиболее распространенных случаев использования rsync.
Передача определенного файла с помощью Rsync

Чтобы передать один файл на удаленную машину, введите полный путь к исходному файлу. Например:

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

Передача содержимого каталога с помощью Rsync

Есть несколько вариантов синхронизации содержимого каталога с помощью rsync через SSH.
Чтобы передать все файлы из исходного каталога в целевой на удаленном хосте, введите:

Звездочка (*) указывает инструменту включить все файлы в исходный каталог. Подкаталоги не передаются.

Чтобы включить все подкаталоги из исходного каталога, используйте опцию -r (рекурсивный) или -a (архивный). Мы рекомендуем использовать флаг -a. Эта опция синхронизирует рекурсивно и сохраняет все разрешения и настройки файлов. В этот раз не используйте звездочку в исходном пути.

Передача содержимого каталога с помощью Rsync

При выполнении команды в таком формате rsync переносит все файлы и подкаталоги из исходного каталога в целевой. В нашем примере, приведенном выше, папка test будет иметь содержимое исходного каталога Dir1, когда передача завершится.

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

Проверка хода передачи файлов Rsync

Чтобы проверить статус передачи файлов rsync, используйте опцию -P. Эта опция отображает время передачи, а также имена синхронизируемых файлов и каталогов.

Если возникли проблемы с соединением и синхронизация прервалась, опция -P возобновит передачу.

Выполните команду в этом формате для рекурсивной синхронизации и проверки состояния передачи:

Например:

Вывод команды rsync при проверке состояния передачи с использованием опции -aP.

Если вы повторно выполните ту же команду, когда в исходном каталоге не было никаких изменений, перенос не произойдет. Причина в том, что rsync передает только изменения в файлах и новые файлы. В этом случае в выводе отображается только следующая строка:
Выполнение команды rsync с опцией status при отсутствии изменений и новых файлов

Когда происходит изменение даже в одном исходном файле, rsync обнаруживает его и синхронизирует с целевым.

Заключение

С помощью команд Linux, приведенных в этом руководстве, вы сможете передавать файлы с помощью rsync через SSH. Мы перечислили наиболее распространенные варианты работы с rsync, чтобы вы могли успешно выполнять резервное копирование данных в удаленное место.

Avatar for Gnostis
Gnostis
Добавить комментарий