Pular para o conteúdo principal

Hooks

Um hook é um script seu que o Salvo roda antes ou depois do backup de um job: parar um serviço, limpar um cache, mandar um aviso para o seu sistema.

● disponível na 0.4.135

Na tela​

Jobs de backup › o job › Hooks abre a gaveta Hooks do job:

HookSe o script falhar
Antes do backupvocê escolhe: Se falhar, parar o backup ou Se falhar, seguir
Depois do backupvira só um aviso no log; recebe SALVO_STATUS

A saída do script vai para o log da execução. Tempo máximo: 600 s por padrão (até 6 h).

O script​

Conferido ao salvar e de novo antes de cada backup

O script tem que ser um caminho absoluto para um arquivo que já existe, do root, executável e sem escrita para grupo ou outros, e a pasta dele também. Fora disso, o hook é recusado.

root@servidor
chown root:root /root/hooks/antes.sh
chmod 700 /root/hooks/antes.sh
chmod go-w /root/hooks

Variáveis que o script recebe:

Variável
SALVO_HOOKpre ou post
SALVO_JOB_ID, SALVO_JOB_NAMEo job
SALVO_RUN_IDa execução
SALVO_ORIGINo que iniciou a execução
SALVO_TARGETSo que está sendo copiado
SALVO_DESTINATION_IDo destino
SALVO_LOGo log da execução
SALVO_STATEa pasta de estado do Salvo
SALVO_STATUSsó depois do backup: ok, avisos, falha ou abortado

Pela linha de comando​

root@servidor
# os hooks do job
/var/lib/salvo/salvo job-hooks --job ID
# antes do backup; se falhar, parar (ou: --on-fail continue)
/var/lib/salvo/salvo job-hooks --job ID --add-pre /root/hooks/antes.sh --on-fail stop
# depois do backup, com tempo máximo em segundos
/var/lib/salvo/salvo job-hooks --job ID --add-post /root/hooks/depois.sh --timeout 300
# remover o hook número N, ou todos
/var/lib/salvo/salvo job-hooks --job ID --remove N
/var/lib/salvo/salvo job-hooks --job ID --clear