Filesystem source: настройка и поведение

source.type: filesystem читает указанные пути на той же машине, где запущен агент, и выдаёт один поток — содержимое в формате gzip-сжатый tar (как один логический артефакт).

Что попадает в backup

Формат артефакта (важно)

Поля source.config

Поле Обязательно По умолчанию Смысл
paths да Непустой массив путей файловой системы (абсолютные пути — обычный выбор).
exclude нет [] Паттерны в синтаксисе Go filepath.Match: *, ?, [chars]. Совпадение проверяется и по filepath.Base (имя в каталоге), и по относительному пути после отрезания одного ведущего / от полного пути. Для каталога при совпадении весь каталог пропускается (SkipDir).
include_hidden нет false Если false: любые элементы с именем, начинающимся с ., пропускаются (в том числе «точечные» каталоги целиком). Если true: точечные имена включаются в обход как обычные.
follow_symlinks нет false Если false (по умолчанию): символические ссылки не попадают в архив (файлы за ссылкой не читаются). Если true: ссылки обрабатываются через tar так, как задаёт файловый metadata (ожидайте запись заголовков symlink/целей согласно archive/tar и режимам ОС).

Примечание по фильтрам

Возможности (capabilities)

Pre-flight (job validate … --deep)

Провайдер выполняет Probe: для каждого пути из paths вызывается os.Stat. Пути должны существовать и быть доступны для статистики процессом агента.

Пример конфигурации

Минимальный фрагмент:

source:
  type: filesystem
  config:
    paths:
      - /var/www/app/data
      - /etc/myapp
    include_hidden: false
    follow_symlinks: false
    exclude:
      - "*.tmp"
      - "*.log"

Готовые job-примеры (репозиторий examples/, на сайте — каталог с просмотром):

Локальный smoke-сценарий: runbook, §10.

См. также