Osx

有沒有辦法讓“頂部”執行一次並退出?

  • June 16, 2016

我發現 shell 命令的輸出top是一種簡單且熟悉的方式,可以粗略了解機器的執行狀況。我想top從一台機器上的小型 Web 伺服器提供 ’ 的輸出(或與之非常相似的東西),以進行粗略的監控。

有沒有辦法讓 top 只寫一次它的文本輸出,而不用格式化字元?我試過這個:

(sleep 1; echo 'q') | top > output.txt

這似乎與我想要的很接近,除了(1)不能保證我不會得到多於或少於一屏的資訊,以及(2)我必須去掉所有終端格式化字元。

或者是否有其他top類似命令列出機器範圍和程序級記憶體/CPU 使用率/正常執行時間資訊?

(理想情況下,我喜歡一種可移植到 Linux 和 Mac OS X 的策略,因為我們的開發人員使用 Mac,而我們的產品環境是 Linux。)

在 Linux 中,你可以試試這個:

top -bn1 > output.txt

來自man top

-b : Batch-mode operation
           Starts top in 'Batch' mode, which could be useful for sending
           output from top to other programs or  to  a  file.   In  this
           mode, top will not accept input and runs until the iterations
           limit you've set with the '-n' command-line option  or  until
           killed.
....
-n : Number-of-iterations limit as:  -n number
           Specifies  the  maximum  number of iterations, or frames, top
           should produce before ending.

使用 OS X,嘗試:

top -l 1

頂部 OSX 手冊頁

-l <samples>
             Use logging mode and display <samples> samples, even if 
             standard output is a terminal. 0 is treated  as  infinity.   
             Rather than redisplaying, output is periodically printed in 
             raw form. Note that the first sample displayed will have an 
             invalid %CPU displayed for each process,  as it is calculated 
             using the delta between samples.

引用自:https://unix.stackexchange.com/questions/147471