"top"을 한 번 실행하고 종료하는 방법이 있습니까?

"top"을 한 번 실행하고 종료하는 방법이 있습니까?

나는 쉘 명령의 출력이 top내 컴퓨터에서 무슨 일이 일어나고 있는지 대략적인 아이디어를 얻는 쉽고 친숙한 방법이라고 생각합니다. top대략적인 모니터링을 위해 컴퓨터의 작은 웹 서버(또는 이와 매우 유사한 것)의 출력을 제공하고 싶습니다 .

텍스트 출력을 정확하게 작성하는 방법이 있습니까?한 번, 서식 지정 문자가 없나요? 나는 이것을 시도했습니다 :

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

그것은 것 같다폐쇄(1) 한 화면 분량의 정보를 얻지 못할 것이라는 보장이 없으며 (2) 모든 터미널 형식 문자를 제거해야 한다는 점을 제외하고는 내가 원하는 대로.

top아니면 시스템 전체 및 프로세스 수준 메모리/CPU 사용량/가동 시간 정보를 나열하는 다른 유사한 명령이 있습니까 ?

(이상적으로는 우리 개발자들이 Mac을 사용하고 우리 프로덕션 환경이 Linux이기 때문에 Linux와 Mac OS X에 이식 가능한 전략을 갖고 싶습니다.)

답변1

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.

답변2

Windows 시스템에서 유사한 유형 번호를 얻으려면 powershell을 조사해야 합니다.

프로세스 목록을 얻고 확인하십시오 get-process. 확인 해봐인용하다.

추가 검색에서 멋진 작은 명령을 찾았습니다.여기.

제안된 while 루프를 사용하면 요구 사항을 충족하는 것은 다음과 같습니다.

ps | sort -desc cpu | select -first 30

pspowershell 의 별칭입니다 get-process.

답변3

macOS 해커

죄송합니다. 형편없지만 macOS에서 제가 원하는 것을 얻었습니다.

top -l 2 -n 10 | tail -22
  • -l 2- 의견에 따라 샘플 크기만 주어지면 macos는 CPU 필드에 0을 출력합니다. 따라서 두 번 샘플링하십시오.

  • -n 10최상위 프로세스만 사용(CPU 로드 기준이 기본 순서임)

  • tail -22 - 실제 해킹적인 부분 - 첫 번째 예에 대한 줄은 건너뛰십시오. -22이 경우에는 모두 시행착오였으며 -n 10.

당신은 이것을 자랑스럽게 생각합니까? 결코 그렇지는 않지만 대략 내가 원하는 것을 수행합니다.

Processes: 547 total, 3 running, 544 sleeping, 2558 threads 
2022/11/24 17:18:44
Load Avg: 1.74, 2.05, 2.01 
CPU usage: 6.25% user, 1.71% sys, 92.2% idle 
SharedLibs: 257M resident, 35M data, 14M linkedit.
MemRegions: 229362 total, 3865M resident, 114M private, 1192M shared.
PhysMem: 16G used (3357M wired), 143M unused.
VM: 11T vsize, 2317M framework vsize, 11336543(0) swapins, 13536939(0) swapouts.
Networks: packets: 33586023/7445M in, 34143918/6707M out.
Disks: 9964939/225G read, 3781186/116G written.

PID    COMMAND          %CPU TIME     #TH    #WQ #PORTS MEM    PURG CMPRS PGRP  PPID  STATE    BOOSTS   %CPU_ME %CPU_OTHRS UID FAULTS    COW   MSGSENT    MSGRECV    SYSBSD     SYSMACH    CSW        PAGEINS IDLEW     POWER INSTRS     CYCLES     USER          #MREGS RPRVT VPRVT VSIZE KPRVT KSHRD
17013  postgres         28.5 01:00.77 1      0   8      62M+   0B   0B    17013 16225 sleeping *0[1]    0.00000 0.00000    501 545151+   124   152        5          353119+    118842+    11731+     0       0         28.5  3760288663 1617021064 postgres      N/A    N/A   N/A   N/A   N/A   N/A  
17019  postgres         25.9 01:04.16 1/1    0   8      64M+   0B   0B    17019 16225 running  *0[1]    0.00000 0.00000    501 552890+   123   160+       5          359735+    120494+    11930+     0       0         25.9  3263636650 1446362124 postgres      N/A    N/A   N/A   N/A   N/A   N/A  
17329  top              8.8  00:00.52 1/1    0   28+    3728K+ 0B   0B    17329 13212 running  *0[1]    0.03698 0.00000    0   2471+     106+  517539+    255643+    4594+      264177+    48+        0       0         8.8   388290277  451214497  root          N/A    N/A   N/A   N/A   N/A   N/A  
16245  Python           8.3  08:43.72 1      0   21     1027M+ 0B   1104K 16245 37017 sleeping *0[1]    0.00000 0.00000    505 1008120+  3429  3229       41         8420748+   6791       2448946+   87      35        8.3   442524899  451503337  me__          N/A    N/A   N/A   N/A   N/A   N/A  
17015  postgres         5.1  00:12.19 1      0   8      29M+   0B   0B    17015 16225 sleeping *0[1]    0.00000 0.00000    501 8276+     114   14         5          360531+    30         85127+     0       5         5.1   516698298  269517335  postgres      N/A    N/A   N/A   N/A   N/A   N/A  
17020  postgres         4.8  00:12.64 1      0   8      32M+   0B   0B    17020 16225 sleeping *0[1]    0.00000 0.00000    501 9074+     113   14         5          400661+    34         94522+     0       6         4.8   486455789  262738456  postgres      N/A    N/A   N/A   N/A   N/A   N/A  
0      kernel_task      3.7  01:46:28 287/16 0   0      1436M  0B   0B    0     0     running   0[0]    0.00000 0.00000    0   6106435   9589  331617464+ 300334081+ 0          0          615407045+ 183     32498664+ 0.0   96723302   461786276  root          N/A    N/A   N/A   N/A   N/A   N/A  
15976  Python           3.0  01:39.90 2      0   24     90M    0B   4860K 94785 94785 sleeping *0[1]    0.00000 0.00000    505 26811     643   460        21         6928600+   1008       28526+     448     1886+     3.1   235167151  177692860  me__          N/A    N/A   N/A   N/A   N/A   N/A  
16226  postgres         1.6  00:39.95 1      0   8      728K   0B   188K  16226 16225 sleeping *0[1]    0.00000 0.00000    501 340       73    23         5          10634810+  20         2383516+   0       4         1.6   37954507   77088931   postgres      N/A    N/A   N/A   N/A   N/A   N/A  
150    WindowServer     1.4  04:23:51 16     7   2944   1307M- 19M  107M  150   1     sleeping *0[1]    0.02412 0.01154    88  15718938+ 72229 255258396+ 99186014+  280197394+ 409489438+ 118640818+ 3284    3028879   1.4   29648136   64463377   _windowserver N/A    N/A   N/A   N/A   N/A   N/A  

관련 정보