Гид по технологиям

Как исключить файлы из rsync

4 min read DevOps Обновлено 13 Dec 2025
Как исключить файлы из rsync
Как исключить файлы из rsync

Иллюстрация: как исключать файлы при использовании rsync

Быстрые ссылки

  • Исключение из списка в файле

  • Исключение одного элемента

Что такое rsync

Rsync — утилита для эффективной синхронизации файлов и директорий между локальной и удалённой машинами. Ключевое поведение: по умолчанию rsync пытается синхронизировать всё, что находится в исходной директории.

Исключение из списка в файле

Лучший способ управлять исключениями — собрать все шаблоны в один файл. Такой подход упрощает поддержку и расширение правил.

Синтаксис примера:

rsync --exclude-from=/path/to/exclusion-file /path/to/source /path/to/dest

Важно: шаблоны исключений должны быть относительными к исходной папке, которую вы передаёте rsync. Если вы запускаете команду из/для /data/web/ (или указываете её как источник), rsync сравнивает только относительную часть путей при проверке исключений — например “cache/“ или “cache*”, а не полный путь “/data/web/cache/“.

Пример: у нас есть локальная команда, которая копирует /data/web/ в /backups/:

rsync -a --exclude-from=/data/exclusions /data/web/ /backups/

Содержимое файла /data/exclusions, чтобы исключить папки cache и temp и все .txt-файлы:

cache*
temp*
*.txt

Пояснения:

  • “cache*” — исключит любые элементы, начинающиеся с “cache” в корне синхронизируемой директории и её подпапках (в зависимости от шаблона и опций).
  • “*.txt” — исключит все файлы с расширением .txt.

Важно: проверяйте результат сначала с опцией –dry-run (или -n), чтобы убедиться, что исключения срабатывают так, как вы ожидаете.

rsync -avn --exclude-from=/data/exclusions /data/web/ /backups/

Исключение одного элемента

Можно задать исключение прямо в командной строке, если нужно временно пропустить конкретный путь:

rsync --exclude=relative/path/to/exclusion /source /dest

Пример (относительный путь):

rsync -a --exclude=cache/ /data/web/ /backups/

Совет: для скриптов регулярно используйте файл исключений — так легче управлять операцией в будущем.

Когда исключения могут не сработать

  • Точность пути и завершающий слэш: rsync по-разному трактует исходный путь с и без завершающего слэша (/dir/ vs /dir). Это влияет на то, какие относительные пути будут проверяться.
  • Кавычки и экранирование при удалённом запуске: при передаче команд через SSH следите за правильным экранированием символов и шаблонов.
  • Порядок include/exclude: если вы используете одновременно include и exclude или сложные фильтры, порядок правил имеет значение.

Важно: всегда выполняйте тест (–dry-run) на небольшом наборе данных перед массовым выполнением в продакшне.

Альтернативные подходы

  • –filter: более гибкий способ, который позволяет комбинировать include/ exclude правила и даже использовать директивы слияния для нескольких файлов правил.
  • Встраиваемые правила на стороне rsync-сервера (rsyncd) — подходят для централизованного управления крупными инфраструктурами.
  • Предварительная подготовка: генерировать список файлов, которые нужно синхронизировать, скриптом на стороне источника и передавать его через –files-from.

Мини‑методология для безопасного применения исключений

  1. Подготовьте файл исключений с читаемыми комментариями.
  2. Выполните rsync -avn для проверки, где n = –dry-run.
  3. Проанализируйте вывод и скорректируйте шаблоны.
  4. Запустите синхронизацию без –dry-run.
  5. Добавьте проверку целостности (например, контрольные суммы) при критичных данных.

Чек‑лист для разных ролей

Администратор:

  • Подготовить и проверить файл исключений.
  • Выполнить тестовую синхронизацию (–dry-run).
  • Запланировать периодическое ревью файла исключений.

Разработчик:

  • Добавлять временные файлы приложения в локальный exclude-файл.
  • Документировать причины исключений в репозитории.

DevOps/CI:

  • Интегрировать проверку exclude-файла в CI (например, запускать тестовый rsync перед деплоем).
  • Хранить файл исключений как часть конфигурации инфраструктуры.

Шпаргалка (cheat sheet)

  • Проверка без изменений: rsync -avn src/ dest/
  • Использовать файл исключений: rsync -a –exclude-from=/path/exclude.txt src/ dest/
  • Одноразовое исключение: rsync -a –exclude=cache/ src/ dest/
  • Исключить по маске: добавить в exclude.txt строку “.log” или “temp

Краткая терминология

  • rsync — инструмент синхронизации файлов.
  • exclude — правило, запрещающее копирование совпадающих путей/шаблонов.
  • include — правило, принудительно включающее совпадающие элементы.
  • relative path — путь, сравниваемый относительно исходной директории.

Примеры ошибок и способы их обнаружения

  • Проблема: исключение не срабатывает — причина часто в неверном относительном пути или в отсутствии завершающего слэша в исходном пути. Решение: проверьте путь и запустите –dry-run.
  • Проблема: удалённые шаблоны не интерпретируются — проверьте, не экранируются ли символы оболочкой и правильно ли указаны кавычки.

Краткое резюме

  • Используйте –exclude-from для долговременного управления исключениями.
  • Для простых случаев подойдет –exclude в командной строке.
  • Всегда тестируйте с –dry-run и документируйте правила в файле исключений.

Часто задаваемые вопросы

Нужно ли указывать полный путь в файле исключений?

Нет. Шаблоны в файле исключений обычно указываются относительно исходной директории, переданной rsync.

Как протестировать, что правило действительно исключает файлы?

Запустите rsync с опцией –dry-run (-n) и ключом -v для подробного вывода: rsync -avn –exclude-from=/path/exclude.txt src/ dest/

Можно ли комбинировать include и exclude?

Да. Для сложных сценариев используйте –filter или сочетание include/exclude, но следите за порядком правил.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Музыка для концентрации: Apple Music и плейлисты
Продуктивность

Музыка для концентрации: Apple Music и плейлисты

Заказ еды через Google Pay — руководство
Руководство

Заказ еды через Google Pay — руководство

Как удалить историю поиска в YouTube
Приватность

Как удалить историю поиска в YouTube

Какой iPhone купить в 2024
Смартфоны

Какой iPhone купить в 2024

Высокая температура CPU в Windows 10 — что делать
Техподдержка

Высокая температура CPU в Windows 10 — что делать

Netflix в XBMC: настройка XBMC Flicks
Руководство

Netflix в XBMC: настройка XBMC Flicks