Главная > Архивация и сжатие > rsync

Полное руководство по команде rsync

Руководство по команде `rsync` для эффективной синхронизации и резервного копирования файлов и каталогов в Linux. Вы можете безопасно и быстро выполнять инкрементные копии и синхронизацию между локальными и удаленными системами.

Основные опции

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

1. Основная синхронизация

2. Режимы передачи и опции

Сгенерированная команда:

Комбинируйте команды.

Описание:

`rsync` Запускает команду.

Комбинируйте эти опции, чтобы виртуально выполнять команды с помощью ИИ.

Принцип работы rsync

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

Основные особенности rsync

Ключевые функции, которые отличают `rsync` от других инструментов копирования.

  • Дельта передача (Delta Transfer): Идентифицирует только различия между исходным и целевым файлами для передачи. Вместо того чтобы копировать весь файл заново, передает только измененные блоки для повышения эффективности.
  • Инкрементное резервное копирование (Incremental Backup): Копирует только измененные файлы с момента последней резервной копии, что экономит время и пространство, так как нет необходимости выполнять полную резервную копию каждый раз.
  • Удаленная синхронизация: Позволяет передавать файлы через зашифрованные каналы с помощью различных удаленных оболочек, включая SSH, что обеспечивает высокую безопасность.
  • Сохранение свойств файлов: Используя режим архива (`-a`), сохраняет все свойства файлов, такие как права, владельцы, группы, временные метки и символические ссылки.

Важность последнего слеша в пути (Trailing Slash)

`rsync` очень важно, добавлять слеш (`/`) в конце пути источника. - `source/`: Копирует **содержимое** каталога `source`. (например: похоже на `cp source/* dest/`) - `source`: Копирует **сам каталог** `source`. (например: похоже на `cp -r source dest/`) Непонимание этой разницы может привести к неожиданным результатам.

Примеры использования

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

Синхронизация локального каталога (Режим архива)

rsync -av /path/to/source_dir/ /path/to/destination_dir/

Синхронизирует содержимое `source_dir` с `destination_dir`. Сохраняет все свойства, такие как права, время и т.д. Файлы, отсутствующие в `source_dir`, не удаляются из `destination_dir`.

Зеркалирование каталога на удаленном сервере (Резервное копирование)

rsync -avz --delete --progress /local/my_data/ user@remote_host:/remote/backup/

Зеркалирует содержимое локального каталога `my_data` в каталог `/backup/` на удаленном сервере. Файлы, отсутствующие в оригинале, также удаляются на месте назначения. Использует сжатие и показывает прогресс.

Получение только определенных файлов с удаленного сервера

rsync -avz --include='*.log' --exclude='*' user@remote_host:/var/log/ /tmp/logs/

Получает только файлы `.log` из каталога `/var/log/` на удаленном сервере в локальный каталог `/tmp/logs/`.

Предварительный просмотр изменений без фактического выполнения

rsync -avz --delete --dry-run /path/to/source/ /path/to/destination/

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

Синхронизация с использованием другого порта SSH

rsync -avz -e "ssh -p 2222" /local/src/ user@remote_host:/remote/dest/

Синхронизирует файлы с удаленным сервером, используя порт 2222 вместо стандартного порта SSH (22).


Те же команды в категории