С чего начать Первые шаги трек · 15 ступеней
Linux Labs

rsync — синхронизация и копирование файлов

4 мин rsync 3.x

Копирует только различия между деревьями файлов; --delete делает приёмник копией источника и удаляет в нём лишнее.

Шпаргалка

5 команд Версия для печати
  • rsync -avzP src/ dst/ синхронизировать (только изменения, прогресс)
  • rsync -avzP src/ user@host:/dst/ по SSH
  • rsync -avzn --delete src/ dst/ СНАЧАЛА dry-run зеркала
  • rsync -avz --exclude='cache/' src/ dst/
  • помни про хвостовой / у источника

Обзор

rsync копирует, передавая только различия — быстро для повторных синхронизаций и больших деревьев. Работает локально и по SSH.

bash
rsync -avz src/ dst/              # архив + сжатие, только изменения

Флаг -a (archive) = рекурсия + сохранение прав/времени/симлинков/владельцев.

Ключи

11

-n (dry-run) показывает, что изменится, без единой записи на диск — всегда проверяй им команду с --delete, прежде чем снять флаг. -a не включает удаление в приёмнике: без --delete rsync только добавляет и обновляет файлы, никогда не убирает лишнее.

Ключ Что делает Пример
-a --archive Архивный режим (rlptgoD) — рекурсия, права, время, симлинки, владельцы. rsync -a src/ dst/
-v --verbose Подробный вывод — какие файлы переданы. rsync -av src/ dst/
-n --dry-run Показать, что будет сделано, без единого изменения на диске. опасно rsync -avn --delete src/ dst/
--delete Удалить в приёмнике файлы, которых нет в источнике — делает приёмник точной копией. опасно rsync -av --delete src/ dst/
-z --compress Сжимать данные при передаче по сети. rsync -avz src/ user@host:/dst/
-P Сокращение --partial --progress — докачка и индикатор прогресса. rsync -avP src/ dst/
--exclude PATTERN Исключить файлы и каталоги по шаблону. rsync -avz --exclude='cache/' src/ dst/
-e command Задать транспорт, например ssh с нестандартным портом. rsync -avz -e 'ssh -p 2222' src/ host:/dst/
--bwlimit KBPS Ограничить скорость передачи, КБ/с. rsync -avz --bwlimit=5000 big/ host:/dst/
--link-dest DIR Хардлинки на неизменённые файлы предыдущего снапшота — экономит место в бэкапах. rsync -av --link-dest=/bak/prev src/ /bak/today/
-c --checksum Сравнивать файлы по контрольной сумме, а не по времени и размеру. rsync -avc src/ dst/

Ничего не найдено. Попробуй запрос короче.

Рецепты

2

Хвостовой слэш — важно!

bash
rsync -av src/ dst/    # СОДЕРЖИМОЕ src → в dst (dst/file)
rsync -av src  dst/    # сам каталог src → в dst (dst/src/file)

Слэш у источника = «содержимое». Без слэша = «сам каталог». Частый источник ошибок.

Команды

bash
rsync -avzP dir/ user@host:/backup/        # на удалённый по SSH с прогрессом
rsync -avz user@host:/data/ ./local/       # с удалённого
rsync -avzn --delete src/ dst/             # СНАЧАЛА dry-run зеркала
rsync -avz --delete src/ dst/              # зеркалирование (удалит лишнее в dst!)
rsync -avz --exclude='*.tmp' --exclude='cache/' src/ dst/
rsync -avz -e 'ssh -p 2222' src/ host:/    # нестандартный SSH-порт
rsync -avz --bwlimit=5000 big/ host:/      # не забивать канал (5 МБ/с)
# инкрементальные снапшоты (неизменённое — хардлинки на вчера):
rsync -av --delete --link-dest=/bak/2026-06-29 src/ /bak/2026-06-30/

Неполадки

5

--delete снёс нужное

--delete делает dst точной копией src. Всегда сперва -n (dry-run) и проверь список. Подстраховка: --backup --backup-dir=.

Скопировалось не туда / задвоился каталог

Хвостовой слэш у источника (см. вкладку про слэш).

Каждый раз копирует всё заново

Сравнение по mtime+размеру; если время «плавает» (разные ФС/часовые пояса) — добавь -c (по контрольной сумме) или --modify-window=1.

Права/владельцы не сохранились

Нужен -a (или -o/-g/-p по отдельности); для чужих владельцев — права root на приёмнике. На FAT/NTFS владельцы не сохранятся.

Долго на множестве мелких файлов

Нормально (rsync сверяет каждый). -z помогает по сети; для разового архива в один файл быстрее tar.

Опасно

--delete удаляет в приёмнике всё, чего нет в источнике, без запроса подтверждения и без корзины: перепутанные местами каталоги обнулят рабочие данные за один запуск. Всегда проверяй такую команду с -n (dry-run) и читай список удаляемых файлов, прежде чем снять флаг. Подстраховка на важных данных — --backup --backup-dir= вместо прямого удаления.

Термины

4
зеркало каталога directory mirror
Копия текущего состояния дерева; без отдельной истории не сохраняет предыдущие версии.
пробный запуск dry run
Режим просмотра предполагаемых изменений без их применения; не блокирует данные от последующих изменений. Ещё встречается в: sysctl, unattended-upgrades: обновления безопасности без участия человека, diff и patch, git: история правок, откат и удалённый репозиторий и ещё 2
контрольная сумма содержимого content checksum
Вычисленное из содержимого значение для обнаружения различий; назначение зависит от этапа проверки.
хранение версий копий backup retention
Правила сохранения и удаления предыдущих состояний резервных копий.

См. также

  • tar — Создание и распаковка архивов tar/gz/xz; бэкап каталогов.
  • ssh-client — Подключение по SSH, копирование scp/rsync, ~/.ssh/config, проброс портов.
  • files-basics — Навигация и файлы — ls, cd, cp, mv, rm, cat, less, head, tail, копипаст в терминале.
Загрузка…