Команда Linux > output.txt с задержкой

Команда Linux > output.txt с задержкой

Моя проблема в том, что когда я запускаю свой скрипт, он продолжается после следующей команды:

top -b > output.txt

Данные на машине довольно большие, поэтому требуется некоторое время, чтобы получить полный стек статистики ЦП из вывода top. Он выводит часть мгновенно, а затем требуется некоторое время, чтобы получить остальное. (Я проверил, просто запустив команду top в терминале отдельно).

Мне нужно дождаться, пока будут получены все статистические данные ЦП и т. д. (скажем, 20 секунд), а затем topпо истечении 20 секунд извлечь выходные данные и вывести их в output.txt.

Я знаю, что сон используется для задержек, однако, похоже, в данном случае он необходим где-то конкретно.

решение1

Я очень сомневаюсь, что машина из этого тысячелетия будет тратить 20 секунд на генерацию одной topтаблицы. Скорее всего, проблема в том, что вы сказали topпечатать вывод с интерваламинавсегда, и этот вывод не записывается немедленно из-за буферизации. Попробуйте top -b -n1 > output.txtвместо этого.

решение2

Попробуйте использовать waitкоманду.

Так:

top -bn 1 > output.txt & wait

Прежде чем двигаться дальше, следует дождаться завершения этого процесса.

Связанный контент