LINUX.ORG.RU
ФорумAdmin

Использование переменных окружения

 , ,


0

1

Переменные окружения Bacula (c)

"%%" - %;
"%c" - имя клиента;
"%d" - имя директора;
"%e" - код завершения (OK, Error, Fatal);
"%i" - идентификатор задания;
"%j" - уникальное имя задания;
"%l" - тип резервирования (Full, Incremental, Differential, Base);
"%n" - имя задания;
"%r" - получатели сообщения;
"%t" - тип задания (Backup, Restore, ...).

Использую их в описании job:

# 2.Снимаем дамп со снапшота на промежуточный диск
Client Run Before Job = "lvcreate -L10G -s -nSNAP-%i /dev/petav/system"
Client Run Before Job = "dd if=/dev/petav/SNAP-%i of=/volume0/%i-%n.dd-image bs=8M"
в консоли все ок:
2013-11-09 18:50:08   petav-work JobId 10051: shell command: run ClientRunBeforeJob "lvcreate -L10G -s -nSNAP-10051 /dev/petav/system"
2013-11-09 18:50:09   petav-work JobId 10051: ClientRunBeforeJob:   Logical volume "SNAP-10051" created
2013-11-09 18:50:09   petav-work JobId 10051: shell command: run ClientRunBeforeJob "dd if=/dev/petav/SNAP-10051 of=/volume0/10051-petav-work-system.dd-image bs=8M"
snapshot появляется в /volume0:
-rw-r----- 1 root root 19998441472 Ноя  9 19:03 10051-petav-work-system.dd-image

Как мне составить fileset, что бы он тоже использовал эти переменные?
Так:

FileSet {
        Name = petav-work-lvm
        Include {
                Options {
                        signature = MD5
                        compression= GZIP
                        recurse = yes
                }
                File = /volume0/%i-%n*
        }
}
не подставляются, в консоли ругань:
Could not stat "/volume0/%i-%n*": ERR=Нет такого файла или каталога 
Так:
FileSet {
        Name = petav-work-lvm
        Include {
                Options {
                        signature = MD5
                        compression= GZIP
                        recurse = yes
                        wildfile = /volume0/%i-%n*
                }
        }
}
в консоли тихо, он файлов не нашел для передачи на sd
Job write elapsed time = 00:00:01, Transfer rate = 0  Bytes/second
Прошу сведущих поделиться методой решения задачи!

★★★★★

Ответ на: комментарий от petav

Так тоже не выходит

FileSet {
        Name = petav-work-lvm
        Include {
                Options {
                        signature = MD5
                        compression= GZIP
                        recurse = yes
                        wildfile = "%i-%n*"
                }
                Options {
                        Exclude = yes
                        RegexFile = ".*"
                }
                File = /volume0/
        }
}

petav ★★★★★
() автор топика
Ответ на: комментарий от petav

Необходимо понять можно или нет

Всегда поражает способность людей втыкать в какой то мусор вместо первоисточника.

http://www.bacula.org/5.0.x-manuals/en/misc/misc/Variable_Expansion.html

Please note that as of version 1.37, the Variable Expansion is deprecated and replaced by Python scripting (not yet documented).

Internal variables are read-only, and may be related to the current job (i.e. Job name),

Еще вопросы?

zgen ★★★★★
()
Ответ на: комментарий от zgen

Всегда поражает способность людей втыкать в какой то мусор вместо первоисточника.

Соглашусь.

Еще вопросы?

Буду теперь думать, как без этого обойтись.

petav ★★★★★
() автор топика
Ответ на: комментарий от zgen

на компьютере

  • Есть много lvm томов
  • Есть выделенный жесткий диск
  • Надо бакулой тома бэкапить
  • Надо, что бы несколько dd оставались на жестком диске

таких компьютеров много, пытаюсь унифицировать конфиги, а то их куча уже.

petav ★★★★★
() автор топика
Ответ на: комментарий от petav

а зачем именно файлсеты именовать персонально, когда надо джобы? не, не понимаю.

Унифицируй расположение бекапов на своих машинах.

zgen ★★★★★
()
Ответ на: комментарий от zgen

а зачем именно файлсеты именовать персонально

Это был как первый вариант, так переделывать меньше.

petav ★★★★★
() автор топика
Ответ на: комментарий от zgen

В общем, разработчики bacula с тобой не согласны )

Наверное есть на то причины. Надо проникнуться концепцией bacula глубже.

petav ★★★★★
() автор топика
Ответ на: комментарий от petav
job {
        ...

        #Снимаем дамп со снапшота на транзитный диск
        Client Run Before Job = "lvcreate -L10G -s -nSNAP-%i /dev/petav/system"
        Client Run Before Job = "dd if=/dev/petav/SNAP-%i of=/volume0/SNAP-%i-%n.dd-image bs=8M"

        #Удаляем созданный snapshot том
        Client Run Before Job = "lvremove /dev/petav/SNAP-%i --force"

        #Бэкапим файлы указанные в fileset для этого задания

        #Переименовываем снятый образ для хранения на транзитном диске
        Client Run After Job = "mv /volume0/SNAP-%i-%n.dd-image /volume0/back/%i-%n.dd-image"

        #Оставлям только несколько последних файлов, остальные удаляем
        Client Run After Job = "/bin/bash -c 'ls -t /volume0/back/*%n* | tail -n+2 | xargs rm -f'"

        #Удаляем снапшот и dd снапшота в случае ошибки
        Run After Failed Job = "lvremove /dev/petav/SNAP-%i --force"
        Run After Failed Job = "rm /volume0/SNAP-%i-%n.dd-image --force"


}
FileSet {
        Name = snapshot-taken-on-volume0
        Include {
                Options {
                        signature = MD5
                        compression= GZIP
                        recurse = yes
                        RegexFile = "SNAP-.*.dd-image"
                }
                Options {
                        Exclude = yes
                        RegexFile = ".*"
                        RegexDir = ".*"
                }
                File = /volume0/
        }
}

При таком подходе возможна ошибка, когда выполняется два и более задания одновременно для разных lvm. Файлов с маской «SNAP-.*.dd-image» будет более одного. zgen, есть мнение? Буду благодарен. Моя задача создать один fileset для всех заданий бэкапа lvm томов, а то таких «разно-одинаковых» fileset уже более 40 и множить новые не хочется.

petav ★★★★★
() автор топика
Ответ на: комментарий от zgen

Кстате, приведенная ссылка на документацию, не по теме. По ссылке говорится о расширении переменных.

Examples

To create an ISO date:

DLT-${Year}-${Month:p/2/0/r}-${Day:p/2/0/r}

, а имел ввиду внутренние переменные bacula.

petav ★★★★★
() автор топика
Ответ на: комментарий от petav

Что-то я новые знания не могу понять как применить к задаче, для ее решения. Необходимо более качественное обдумывание, для вынесения структурного решения. zgen, спасибо!

petav ★★★★★
() автор топика
Ответ на: комментарий от petav

Открыл для себя Filter в mc и рассмотрел в существующей «пестроте» файлов конфигурации, некоторую гибкость и преимущества. В облегчение созданию новых узлов можно создать генератор конф. файлов.

petav ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.