Uważam, że dane wyjściowe polecenia powłoki top
są prostym i znanym sposobem na uzyskanie przybliżonego obrazu stanu maszyny. Chciałbym podawać top
dane wyjściowe (lub coś bardzo podobnego do tego) z małego serwera WWW na maszynie do surowego monitorowania.
Czy istnieje sposób, aby uzyskać najlepsze zapisanie tekstu wyjściowego dokładnie raz , bez formatowania znaków? Próbowałem tego:
(sleep 1; echo 'q') | top > output.txt
To wydaje się być bliskie temu, czego chcę, poza tym, że (1) nie ma gwarancji, że nie otrzymam więcej niż jednego ekranu informacji i (2) muszę usunąć wszystkie znaki formatujące terminal.
A może jest jakieś inne top
podobne polecenie, które wyświetla informacje o pamięci / zużyciu procesora / czasie pracy na poziomie całego komputera?
(Idealnie, chciałbym mieć strategię, która jest przenośna zarówno na system Linux, jak i Mac OS X, ponieważ nasi twórcy używają komputerów Mac, a naszym środowiskiem produkcyjnym jest Linux).
źródło
top
w OS X obsługiwał flagę -b. :-( Niestety tak nie jest i nie widzę wersjitop
dostępnej przez homebrew. Wydaje się, że jest to właściwa odpowiedź dla Linuksa, chociaż./usr/bin/top -l 1
na OSX 10.9.4 jest idealny ... dzięki! Jeśli chodzi o instalację GNU top, mógłbym zainstalować go na moim komputerze, ale musiałbym przekonać innych programistów do zainstalowania go na swoich komputerach, aby mój kod działał dla nich, więc wolałbym tego unikać. (Jeśli nie będzie dostępny przez Homebrew, pojawi się opór.) Teraz, gdy będę się zmieniał w oparciu o platformę, będę chciwy ... czy znasz jakieś pół-ekwiwalenty Windows, więc ci deweloperzy (mamy kilka) może mieć również nieprzetworzoną stronę statusu? (Jeśli nie, to dobrze, twoja odpowiedź jest już bardzo pomocna!)top -l 2
i wyrzucić pierwszą stronę próbek?Aby uzyskać podobne numery typów z systemu Windows, powinieneś rzucić okiem na PowerShell.
Tylko po to, aby uzyskać listę procesów, na które możesz spojrzeć
get-process
. Spójrz na to odniesienie .W jakiejś dalszych poszukiwań, znaleźliśmy przyjemne polecenie trochę tutaj .
Co, jeśli weźmiesz poza prezentowaną pętlę while, dla twoich potrzeb byłoby:
ps
w PowerShell to pseudonimget-process
.źródło