Могу ли я получить список файлов/директорий, которые rsync (или другая программа) передает/удаляет перед фактической синхронизацией?

Вопрос или проблема

У меня две разные машины с Linux (серверы веб-сайтов), разделенные интернетом, с похожей структурой каталогов и файлами. Обе могут получать доступ друг к другу через ssh.

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

Rsync хорошо справляется с выполнением синхронизации. Но есть ли в нем какая-либо опция, которая покажет мне, какие изменения произойдут перед выполнением?

Или есть ли другая программа для Linux, которая может это сделать.

Обе машины с Linux могут получать доступ друг к другу через ssh.

Спасибо

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

Ответ или решение

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

Использование rsync для предварительного просмотра изменений

Чтобы узнать, какие файлы и каталоги будут переданы или удалены перед выполнением фактической синхронизации, вы можете воспользоваться опцией -n (или --dry-run). Это позволяет вам запустить процесс синхронизации в «тестовом» режиме, в котором rsync выведет список всех предполагаемых изменений без их фактического выполнения.

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

rsync -avn /path/to/source/ user@remote:/path/to/destination/

Разбор параметров команды:

  • -a — означает «архивный» режим, который сохраняет все атрибуты файлов.
  • -v — включает режим подробного вывода, позволяя видеть, что именно происходит.
  • -n — проводит «сухой» запуск, то есть никаких изменений не будет внесено.

Функции rsync

  1. Отчёт о передаче: С помощью вывода, полученного от rsync, вы увидите список файлов, которые будут переданы, удалены или изменены.
  2. Безопасность: «Сухой» запуск отменяет риск случайного удаления или переноса важных файлов.
  3. Настройки фильтрации: При необходимости вы можете добавить дополнительные параметры, такие как --exclude для исключения определённых файлов или папок из процесса синхронизации.

Альтернативные инструменты

Если вас интересуют другие решения, то стоит упомянуть:

  1. rsnapshot: Это инструмент, который строится на основе rsync и предоставляет возможность создавать резервные копии. Он также поддерживает режимы предварительного просмотра.

  2. Unison: Это двунаправленный синхронизатор, который может сравнивать две директории и показывает потенциальные конфликты и изменения, которые будут внесены.

  3. rclone: Используется для синхронизации файлов между облачными хранилищами и локальными файлами. У него также есть функция «просмотра» изменений перед их применением.

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...