Existe o utilitário timelimit nas portas do FreeBSD para limitar o tempo de execução de qualquer comando. Se o tempo limite for acionado, o comando será eliminado.
Eu gostaria de usar o mbuffer
para fazer a replicação do ZFS, mas, para fazer isso, tenho que iniciá-lo no modo de escuta no host de destino. Que eu faria do host mestre por
ssh 10.10.10.11 mbuffer -s 128k -m 1G -I 9090 | zfs receive tank3/pro4
mbuffer
nunca expirará, mas saia com sucesso quando a replicação for concluída.
Pergunta
É possível expirar mbuffer
se ele não tiver retornado o sucesso em, 2 minutos?
Existe o utilitário timelimit nas portas do FreeBSD para limitar o tempo de execução de qualquer comando. Se o tempo limite for acionado, o comando será eliminado.
Sim, use um script wrapper para iniciar o processo mbuffer, registre o PID associado ao mbuffer, faça o script durar por 2 minutos e, em seguida, se o PID ainda existir, TERM interrompa o PID.
Você também pode iniciar o mbuffer por meio de um comando all-in-one que usa o SSH como um transporte. Não é um problema se o destino for remoto ... mais uma penalidade de desempenho se for local ...
zfs send tank3/pro4@snapshot | mbuffer -q -v 0 -s 128k -m 1G | ssh [email protected] 'mbuffer -s 128k -m 1G | zfs receive tank3/pro4'
Se o desempenho for um problema, você pode estar sujeito à criptografia da CPU e do SSH. Há algumas soluções alternativas para isso ...