Бакулюмы используют переменную для многократного использования Ресурса FileSet

number_var=$(cat number.txt)
3
задан 15 January 2013 в 17:38
2 ответа

После нескольких дней использования решения, похоже, оно работает, так что вот оно:

Допустим, у нас есть следующие задания:

  • server1- env1-job
  • server2-env2-job
  • server2-env3-job

Затем, принимая --job в качестве соглашения, набор файлов должен выглядеть так:

FileSet {
  Name = "someapp-fileset"
  Include {
    Options {
      signature = MD5
      Compression = GZIP
    }
    File = "| bash -c \"echo %n | awk -F '-' '{print \$2}' | xargs -I ARG echo /opt/ARG\""
  }
  Exclude {
     File = "| bash -c \"echo %n | awk -F '-' '{print \$2}' | xargs -I ARG echo /opt/ARG/temp\""
     File = "| bash -c \"echo %n | awk -F '-' '{print \$2}' | xargs -I ARG echo /opt/ARG/logs\""
  }
}

Дополнительные сведения о выполнении команд в наборе файлов см. документацию

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

2
ответ дан 3 December 2019 в 06:37

Я не верю, что вы сможете это сделать - файл конфигурации Bacula - это файл конфигурации , а не язык программирования или оболочка.

Ваши практические варианты:

  1. Используйте идентичные структуры каталогов на каждой машине
    Это наиболее практичное решение с точки зрения Bacula. Это требует наименьшей дополнительной работы в файле конфигурации Bacula, и если ваши приложения «идентичны», это имеет наибольший смысл.

  2. Используйте набор файлов на машину
    Это раздражает больше, чем вариант (1), поскольку вы теперь поддерживаются почти идентичные наборы файлов. Это наиболее практично, если вы создаете конфигурацию Bacula с помощью какого-либо другого процесса, который может автоматически создавать наборы файлов.

  3. Используйте один набор файлов со списком всех каталогов.
    Это работает, но каждый раз, когда вы добавляете новую машину (и, следовательно, новый каталог env # ), вы будете изменять глобальный набор файлов и запускать полное резервное копирование.

  4. Используйте директиву ClientRunBeforeJob , чтобы поместить файлы в едином месте
    Это немного грязно, но это работает - Перед тем, как сделать резервную копию, переместите среду приложения Bacula rsync в другое место. (Если вы работаете в системе Linux, вы также можете использовать mount --bind , чтобы разместить приложение в едином месте, не влияя ни на что другое.)
    но это работает - установите Bacula rsync среду приложения в другое место, прежде чем она сделает резервную копию. (Если вы работаете в системе Linux, вы также можете использовать mount --bind , чтобы разместить приложение в едином месте, не влияя ни на что другое.)
    но это работает - установите Bacula rsync среду приложения в другое место, прежде чем она сделает резервную копию. (Если вы работаете в системе Linux, вы также можете использовать mount --bind , чтобы разместить приложение в едином месте, не влияя ни на что другое.)
    Основным недостатком этого подхода является то, что вы удваиваете свои требования к хранилищу: у вас есть работающая производственная копия приложения и теневая копия, которую Bacula создает для резервного копирования.

1
ответ дан 3 December 2019 в 06:37

Теги

Похожие вопросы