Вопрос или проблема
У меня две разные машины с 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
- Отчёт о передаче: С помощью вывода, полученного от
rsync
, вы увидите список файлов, которые будут переданы, удалены или изменены. - Безопасность: «Сухой» запуск отменяет риск случайного удаления или переноса важных файлов.
- Настройки фильтрации: При необходимости вы можете добавить дополнительные параметры, такие как
--exclude
для исключения определённых файлов или папок из процесса синхронизации.
Альтернативные инструменты
Если вас интересуют другие решения, то стоит упомянуть:
-
rsnapshot
: Это инструмент, который строится на основеrsync
и предоставляет возможность создавать резервные копии. Он также поддерживает режимы предварительного просмотра. -
Unison
: Это двунаправленный синхронизатор, который может сравнивать две директории и показывает потенциальные конфликты и изменения, которые будут внесены. -
rclone
: Используется для синхронизации файлов между облачными хранилищами и локальными файлами. У него также есть функция «просмотра» изменений перед их применением.
Заключение
В вашем случае, rsync
с опцией -n
— это самый простой и эффективный способ получить полное представление о том, какие изменения произойдут на ваших серверах при синхронизации. Это не только упростит задачу, но и обеспечит безопасность данных, минимизируя риск потерь. Перед окончательной синхронизацией обязательно запускайте тестовый режим, чтобы быть уверенными в том, что вы хотите сделать.