Possível matar o comando após um tempo limite, se não for bem sucedido?

1

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?

    
por Sandra 12.02.2013 / 13:04

3 respostas

2

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.

    
por 12.02.2013 / 14:37
1

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.

    
por 12.02.2013 / 13:10
1

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 ...

    
por 12.02.2013 / 14:01