Jak przechwycić wyjście najwyższego polecenia w pliku w Linuksie?
Chcę napisać wyjście określonego polecenia „top” do pliku. Zrobiłem kilka googli i dowiedziałem się, że można to zrobić za pomocą następującego polecenia.
top -n 10 -b > top-output.txt
gdzie -n określa liczbę iteracji, a -b jest dla trybu wsadowego. Działa to bardzo dobrze, jeśli pozwala na 10 iteracji. Ale jeśli przeryję działanie polecenia z Ctrl-C, plik wyjściowy wydaje się być pusty.
Nie będę znał liczby iteracji przed rozdaniem, więc muszę go złamać ręcznie. Jak mogę przechwycić dane wyjściowe góry w pliku bez określania iteracji?
Poleceniem, którego próbuję użyć jest dokładnie
top -b | grep init > top-output.txt
i rozbij go, kiedy tylko chcę. Ale to nie działa.
EDYCJA: Aby nadać więcej kontekstu pytaniu, mam kod Java, który wywołuje narzędzie z plikiem wejściowym. Podobnie jak w narzędziu pobiera plik jako dane wejściowe i działa przez pewien czas, a następnie pobiera następny plik i tak dalej. Mam zestaw 100 000 plików, które należy dostarczyć do narzędzia. Teraz próbuję monitorować to konkretne narzędzie (działa jako proces w Linuksie). Nie mogę uchwycić całego „topowego” pliku jako pliku, ponieważ byłby on zbyt wielki z niechcianymi danymi. Jak uchwycić statystyki systemowe tylko tego procesu i zapisać go do pliku za pomocą góry?