Comando Linux output.txt com atraso

2

Meu problema é que, quando executo meu script, ele continua depois de um comando abaixo:

top -b > output.txt

Os dados na máquina são muito grandes e, portanto, leva algum tempo para recuperar a pilha completa de estatísticas de CPU da saída top . Ele produz alguns instantaneamente e, em seguida, demora um pouco para obter o resto. (Eu verifiquei apenas executando o comando top no terminal por si só).

Eu preciso esperar que todas as estatísticas da CPU sejam recuperadas (digamos 20 segundos), depois pegue a saída top após 20 segundos e envie para o arquivo.txt.

Eu sei que o sono é usado para atrasos, mas parece ser necessário em algum lugar especificamente neste caso.

    
por Jeff 11.04.2018 / 00:20

2 respostas

4

Eu duvido muito que uma máquina deste milênio levará 20 segundos para gerar uma única tabela top . Mais provavelmente, o problema é que você disse a top para imprimir a saída em intervalos para sempre , e essa saída não é gravada imediatamente por causa do buffer. Experimente top -b -n1 > output.txt .

    
por 11.04.2018 / 00:38
-2

Tente usar o comando wait .

Assim:

top -bn 1 > output.txt & wait

Espera-se que o processo esteja concluído antes de prosseguir.

    
por 11.04.2018 / 01:19