Um contexto opcional pode ser usado em macros de usuário, permitindo substituir o valor padrão por um valor específico de contexto.
O contexto é anexado ao nome da macro; a sintaxe depende se o contexto é um valor de texto estático:
ou uma expressão regular:
Observe que uma macro com contexto de expressão regular só pode ser definida na configuração de macro de usuário. Se o prefixo regex: for usado em outro lugar como contexto de macro de usuário, como em uma expressão de trigger, ele será tratado como contexto estático.
A citação do contexto é opcional (veja também notas importantes).
Exemplos de contexto de macro:
| Exemplo | Descrição |
|---|---|
{$LOW_SPACE_LIMIT} |
Macro de usuário sem contexto. |
{$LOW_SPACE_LIMIT:/tmp} |
Macro de usuário com contexto (string estática). |
{$LOW_SPACE_LIMIT:regex:"^/tmp$"} |
Macro de usuário com contexto (expressão regular). Igual a {$LOW_SPACE_LIMIT:/tmp}. |
{$LOW_SPACE_LIMIT:regex:"^/var/log/.*$"} |
Macro de usuário com contexto (expressão regular). Corresponde a todas as strings prefixadas com /var/log/. |
Macros de usuário com contexto podem ser definidas para realizar limites de trigger mais flexíveis em expressões de trigger (com base nos valores recuperados pela descoberta de baixo nível). Por exemplo, você pode definir as seguintes macros:
Então, uma macro de descoberta de baixo nível pode ser usada como contexto de macro em um protótipo de trigger para descoberta de sistemas de arquivos montados:
Após a descoberta, diferentes limites de espaço livre serão aplicados nas triggers dependendo dos pontos de montagem ou tipos de sistema de arquivos descobertos. Eventos de problema serão gerados se:
Não crie macros de contexto diferentes que correspondam à mesma string para evitar comportamento indefinido.
Tecnicamente, o contexto da macro é especificado usando regras semelhantes aos parâmetros da chave do item, exceto que o contexto da macro não é analisado como vários parâmetros se houver um caractere ,:
" se o contexto contiver um caractere } ou começar com um caractere ". Aspas dentro do contexto entre aspas devem ser escapadas com o caractere \.\ não é escapado, o que significa que não é possível ter um contexto entre aspas terminando com o caractere \ - a macro {$MACRO:"a:\b\c\"} é inválida.As seguintes macros são todas equivalentes, porque têm o mesmo contexto: {$MACRO:A}, {$MACRO: A} e {$MACRO:"A"}. Isso contrasta com as chaves de item, onde 'key[a]', 'key[ a]' e 'key["a"]' são semanticamente iguais, mas diferentes para fins de exclusividade.