rsync согласует файлы и деревья каталогов, не передавая без необходимости неизменившиеся данные. Эффективность не делает любой запуск безопасным: результат определяют синтаксис источника, завершающие косые черты, метаданные, исключения и политика удаления.
Совместное использование сети · Урок 2
rsync
Узнайте, как предварительно просматривать, выполнять и проверять безопасную локальную или SSH-синхронизацию каталогов с помощью rsync.
Чтение источника и назначения
Локально синхронизируйте содержимое source/ с destination/:
$ rsync -a -- source/ destination/
Завершающая косая черта в source/ означает «копировать содержимое этого каталога». Без неё команда rsync -a source destination/ создаёт или обновляет destination/source. При изменении положения косой черты всегда предварительно проверяйте результирующие пути.
Что означает завершающая косая черта в rsync -a source/ destination/?
Архивный режим
Архивный режим -a равнозначен набору параметров рекурсивного обхода и сохранения метаданных, который обычно записывают как -rlptgoD. Он сохраняет символические ссылки, права, время изменения, группы, владельцев, устройства и специальные файлы, если это позволяют права и платформа.
Архивный режим сам по себе не сохраняет жёсткие ссылки, ACL и расширенные атрибуты; для них обычно нужны -H, -A и -X. Он также не создаёт исторические версии автоматически.
Какие метаданные не входят в -a сами по себе?
Предварительный просмотр передачи
Перед значимой синхронизацией выполните пробный запуск с подробным списком изменений:
$ rsync -a --dry-run --itemize-changes -- source/ destination/
Пробный запуск прогнозирует действия по результатам текущего сканирования, но не гарантирует, что файлы не изменятся до настоящей команды. Сохраните и проверьте точную команду, а затем запускайте её без --dry-run только после подтверждения обеих конечных точек.
Что предоставляет сочетание --dry-run --itemize-changes?
Синхронизация через SSH
Отправляйте данные на удалённый хост или получайте их оттуда с помощью знакомого удалённого операнда:
$ rsync -a -- source/ alice@example.net:/srv/data/
$ rsync -a -- alice@example.net:/srv/data/ destination/
Современный rsync обычно использует SSH для такой формы, но проверьте настроенную удалённую оболочку, ключ хоста, права учётной записи и наличие rsync на удалённой стороне. Сжатие через -z может помочь для сжимаемых данных в ограниченном канале, но способно напрасно расходовать процессорное время на уже сжатые данные.
Какой порядок операндов получает удалённые данные в локальный каталог?
Удаление как разрушительное действие
--delete удаляет в области синхронизации те записи назначения, которых нет в источнике. Поэтому перепутанные конечные точки, неверная косая черта или ошибочное исключение могут стереть действительные данные. Выполняйте предварительную проверку на тестовом назначении, обеспечьте восстанавливаемые резервные копии, проверьте подключение файловой системы и рассмотрите ограничение максимального числа удалений до разрешения операции.
После настоящего запуска проверьте код завершения и журналы, сравните ожидаемое число файлов и метаданные, протестируйте характерные данные или восстановление. Сама по себе синхронизация rsync зеркалирует нежелательное удаление или повреждение и не является полноценной стратегией резервного копирования.
Что может сделать --delete во время синхронизации?
Урок завершён
Вы завершили rsync
Теперь вы можете предварительно просматривать и проверять операцию rsync, не упуская её разрушительных пограничных случаев.
Используйте завершающие косые черты, чтобы выразить требуемую структуру каталогов.
При необходимости добавляйте параметры метаданных, не входящие в архивный режим.
До настоящей синхронизации проверяйте детализированный вывод пробного запуска.
Проверяйте подлинность SSH и направление конечных точек.
Рассматривайте удаление и хранение резервных версий как явные политики.
Сохраните прогресс
Создайте бесплатный аккаунт, чтобы сохранить этот урок и продолжить на любом устройстве.
Создать бесплатный аккаунт