В этой статье блога мы рассмотрим различные способы сохранения старых файлов во время синхронизации файлов с помощью популярной утилиты rsync. Rsync — мощный инструмент командной строки, используемый для эффективной передачи файлов и синхронизации между разными местоположениями. По умолчанию rsync обновляет файлы в месте назначения, чтобы они соответствовали источнику, но мы обсудим несколько методов сохранения старых файлов во время синхронизации.
Метод 1: использование параметра –backup
Rsync предоставляет параметр –backup, который создает резервные копии файлов, которые собираются перезаписать. К именам файлов резервных копий добавляется суффикс, например «~» или «.bak». Вот пример команды:
rsync --backup --suffix=.bak source_directory/ destination_directory/
Эта команда синхронизирует файлы из исходного_каталога в целевой_каталог, сохраняя при этом старые файлы путем создания резервных копий с суффиксом.bak.
Метод 2: использование опции –backup-dir
Опция –backup-dir позволяет указать отдельный каталог для хранения резервных копий перезаписанных файлов. Этот метод позволяет хранить файлы резервных копий отдельно от синхронизированных файлов, обеспечивая более чистую структуру каталогов. Вот пример:
rsync --backup-dir=backup_directory/ source_directory/ destination_directory/
Эта команда синхронизирует файлы из исходного_каталога в целевой_каталог и сохраняет резервные копии перезаписанных файлов в резервном_каталоге.
Метод 3: использование параметра –update
Опция –update полезна, если вы хотите синхронизировать только те файлы, которые новее существующих файлов в месте назначения. Это позволяет избежать перезаписи любых файлов, которые уже существуют и имеют более новую временную метку. Вот пример:
rsync --update source_directory/ destination_directory/
Эта команда синхронизирует только новые файлы из исходного_каталога в целевой_каталог, сохраняя старые файлы.
Метод 4: использование параметра –existing
Опция –existing указывает rsync пропустить создание новых файлов в месте назначения. Он обновляет только существующие файлы, гарантируя сохранение всех старых файлов, отсутствующих в источнике. Вот пример:
rsync --existing source_directory/ destination_directory/
Эта команда синхронизирует только существующие файлы из исходного_каталога в целевой_каталог, сохраняя все старые файлы, отсутствующие в исходном_каталоге.
В этой статье мы рассмотрели несколько методов сохранения старых файлов во время синхронизации файлов с помощью rsync. Используя такие параметры, как –backup, –backup-dir, –update и –existing, вы можете настроить поведение rsync в соответствии с вашими конкретными требованиями. Независимо от того, нужно ли вам хранить резервные копии или только обновлять новые файлы, rsync обеспечивает гибкость, обеспечивающую эффективную и надежную синхронизацию файлов.