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.135Na tela
Jobs de backup › o job › Hooks abre a gaveta Hooks do job:
| Hook | Se o script falhar |
|---|---|
| Antes do backup | você escolhe: Se falhar, parar o backup ou Se falhar, seguir |
| Depois do backup | vira 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_HOOK | pre ou post |
SALVO_JOB_ID, SALVO_JOB_NAME | o job |
SALVO_RUN_ID | a execução |
SALVO_ORIGIN | o que iniciou a execução |
SALVO_TARGETS | o que está sendo copiado |
SALVO_DESTINATION_ID | o destino |
SALVO_LOG | o log da execução |
SALVO_STATE | a pasta de estado do Salvo |
SALVO_STATUS | só 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