Mi problema es que cuando ejecuto mi script continúa pasando el siguiente comando:
top -b > output.txt
Los datos en la máquina son bastante grandes y, por lo tanto, lleva algún tiempo recuperar la pila completa de estadísticas de la CPU de la top
salida. Genera una parte al instante y luego tarda un poco en obtener el resto. (Lo verifiqué simplemente ejecutando el comando superior en la terminal).
Necesito esperar a que se recuperen todas las estadísticas de la CPU, etc. (digamos 20 segundos), luego tomar la top
salida después de 20 segundos y enviarla a output.txt.
Sé que el sueño se utiliza para los retrasos, sin embargo, parece ser necesario en algún lugar específico en este caso.
Respuesta1
Dudo mucho que una máquina de este milenio tarde 20 segundos en generar una sola top
tabla. Lo más probable es que el problema sea que le haya indicado top
imprimir la salida a intervalospara siemprey esa salida no se escribe inmediatamente debido al almacenamiento en búfer. Inténtalo top -b -n1 > output.txt
en su lugar.
Respuesta2
Intente usar el wait
comando.
Como esto:
top -bn 1 > output.txt & wait
Se supone que debe esperar hasta que se complete el proceso antes de continuar.