O que acontece em “watch” quando o comando chamado ainda não terminou?

0

Um servidor produz grandes quantidades de dados que eu gostaria de baixar o mais continuamente possível. A ideia mais simples é apenas usar

watch rsync ...

Pelo que entendi, watch chamará rsync a cada 2 segundos.

A questão principal é: O que acontece quando rsync não desiste dentro desses 2 segundos? Será que vai começar um novo rsync a cada 2 segundos, não importa o que ou vai esperar até que o rsync anterior tenha terminado?

    
por Michael 09.11.2017 / 16:09

2 respostas

2

Accordint para testar com

watch updatedb

Aguarda o término do programa, antes de iniciar outra sessão.

Não tenho certeza se faz sentido executar o rsync com o relógio. Se você quiser acionar a execução regular, use o cron.

Se você deseja executar seu rsync com mais frequência, escreva o script com ciclo permanente (while true) e use o pgrep para detectar o rsync em execução. Se detectado, aguarde seu tempo definido e teste em outra iteração do ciclo.

    
por 09.11.2017 / 16:18
2

Você pode verificar isso executando algo como

watch "date >> watch.log; echo Sleeping; sleep 10"

que usará o intervalo padrão de dois segundos. Se você deixar isso para funcionar um pouco, verá que watch.log registra a data e a hora a cada doze segundos - assim, watch executa seu comando, espera que termine e aguarda para o intervalo configurado antes de executar o comando novamente.

    
por 09.11.2017 / 16:19

Tags