Comando Linux> output.txt com atraso

Comando Linux> output.txt com atraso

Meu problema é que quando executo meu script ele continua após 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 da CPU da topsaída. Ele produz alguns instantaneamente e demora um pouco para obter o resto. (Eu verifiquei apenas executando o comando top no terminal sozinho).

Preciso esperar que todas as estatísticas da CPU, etc., sejam recuperadas (digamos 20 segundos), depois pegar a topsaída após 20 segundos e enviar para output.txt.

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

Responder1

Duvido muito que uma máquina deste milênio demore 20 segundos para gerar uma única toptabela. O mais provável é que você tenha solicitado topa impressão da saída em intervalospara sempre, e essa saída não é gravada imediatamente devido ao buffer. Em vez disso, tente top -b -n1 > output.txt.

Responder2

Tente usar o waitcomando.

Assim:

top -bn 1 > output.txt & wait

É suposto esperar até que o processo seja concluído antes de prosseguir.

informação relacionada