Вопрос или проблема
Я пытаюсь исключить папку “bulk” в каждой домашней директории из резервного копирования. Для этой цели у меня есть строка
- /data/home/*/bulk
в моем файле списка исключений.
Однако, похоже, что это не распознается:
Предупреждение: спецификация файла '/data/home/*/bulk' в файле списка исключений exclude-list-test.txt
не начинается с правильного префикса /data/home/kay/bulk. Игнорирование.
Есть ли способ?
Кстати, совместим ли этот формат в общем случае с rsync’s exclude-from? У меня есть рабочий список исключений для этого, где этот выражение с подстановочным знаком работает.
Возможная проблема заключается в неправильной передаче пути с символом подстановки в duplicity для rsync. Посмотрите на пример ниже. Это реальный пример передачи исключений в rsync через переменную окружения внутри скрипта:
EXCLUDES=”–exclude=/etc/blkid.tab –exclude=/root/dir1 –exclude=”*.sql””
Обратите внимание, что кавычки ” используются для разделения записи, содержащей звездочку, чтобы предотвратить расширение этого символа оболочкой. Попробуйте использовать кавычки в файле exclude-list-test.txt.
Ответ или решение
Приветствую!
Ваша проблема с отклонением папки «bulk» в каждом домашнем каталоге из резервного копирования с помощью Duplicity действительно требует внимательного рассмотрения. Рассмотрим ваше текущую настройку и возможные решения.
Понимание проблемы
При использовании Duplicity для создания резервных копий файловых систем часто возникает необходимость исключить определенные каталоги или файлы. В вашем случае вы хотите исключить каталог bulk
в каждом домашнем каталоге пользователей, используя строку:
- /data/home/*/bulk
Сообщение об ошибке, которое вы получаете:
Warning: file specification '/data/home/*/bulk' in filelist exclude-list-test.txt doesn't start with correct prefix /data/home/kay/bulk. Ignoring.
указывает на то, что Duplicity не воспринимает вашу запись в списке исключений должным образом. Ошибка говорит о том, что путь с шаблоном не совпадает с фактическим путем, который ожидает Duplicity. Это связано с тем, что *
не обрабатывается так, как это происходит в rsync
.
Решение проблемы
-
Использование абсолютных путей:
Попробуйте явно указать полный путь к каждому пользователю. Например, если у вас есть пользователиkay
иjohn
, вам нужно будет указать их явно:- /data/home/kay/bulk - /data/home/john/bulk
К сожалению, Duplicity не поддерживает подстановочные знаки в общем виде, как это делает
rsync
. -
Скрипт с динамической генерацией исключений:
Если у вас много пользователей, вы можете рассмотреть возможность написания сценария, который динамически создаст список исключений. Например, с помощью bash-скрипта:for dir in /data/home/*; do echo "- ${dir}/bulk" done > exclude-list.txt
Это создаст файл
exclude-list.txt
с каждой записью, что позволит Duplicity игнорировать каталогbulk
для каждого пользователя.
Совместимость форматов
Что касается вашего вопроса о совместимости формата списка исключений Duplicity с rsync
, важно отметить, что они работают по разным принципам. rsync
позволяет использовать подстановочные символы, в то время как Duplicity требует указания конкретных путей. Форматы различаются, и хотя некоторые конструкции могут быть совместимы, в большинстве случаев необходимо внимательно проверять каждую запись в списках исключений.
Рекомендации по улучшению
- Настройка документации: Убедитесь, что у вас имеется обновленное руководство по использованию Duplicity, особенно в части работы с исключениями.
- Тестирование исключений: Рекомендуется сначала протестировать новый файл исключений на небольшом наборе данных, чтобы убедиться, что все работает как ожидается.
Заключение
Проблема с исключениями в Duplicity — это важный аспект резервации, который стоит внимательно контролировать. Попробуйте использовать указанные выше методы, чтобы корректно отработать исключения для каталога bulk
. Обратите внимание, что Duplicity требует строгого соблюдения формата путей, что отличает его от rsync
. Если у вас есть дополнительные вопросы или нужна помощь при настройке, не стесняйтесь обращаться.
С уважением,
[Ваше имя]
IT Эксперт