CPU 사용량, 디스크 사용량, RAM 사용량을 인쇄하는 Bash 스크립트

CPU 사용량, 디스크 사용량, RAM 사용량을 인쇄하는 Bash 스크립트

우리는 시스템 관리자가 topCPU 사용량, free -m메모리, df -lh하드 디스크 공간 명령을 사용한다는 것을 알고 있습니다. CPU, RAM, HDD 사용량 정보만 삭제하고 싶어요.

3개의 명령을 생성하여 CPU 사용량(멀티 코어 cou의 모든 코어의 평균 % 사용량), 디스크 사용량(/partition %만), Ram(MB만 사용 비율)의 사용량 세부 정보를 인쇄하는 bash 스크립트에 넣어야 합니다. , 아래 그림과 같이.

원하는 출력:

CPU: 70
RAM: 45
HDD: 10

답변1

이 시도:

#!/bin/bash     
echo CPU: `top -b -n1 | grep "Cpu(s)" | awk '{print $2 + $4}'` 
FREE_DATA=`free -m | grep Mem` 
CURRENT=`echo $FREE_DATA | cut -f3 -d' '`
TOTAL=`echo $FREE_DATA | cut -f2 -d' '`
echo RAM: $(echo "scale = 2; $CURRENT/$TOTAL*100" | bc)
echo HDD: `df -lh | awk '{if ($6 == "/") { print $5 }}' | head -1 | cut -d'%' -f1`

편집하다:

    [root@dev ~]# df -lh
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/mapper/vg_dev-lv_root
                           64G   31G   30G  51% /
    tmpfs                1004M  112K 1004M   1% /dev/shm
    /dev/sda1             485M   30M  430M   7% /boot


[root@dev ~]# top -b -n1
top - 13:39:49 up 8 days,  4:59,  3 users,  load average: 0.00, 0.01, 0.00
Tasks: 135 total,   1 running, 134 sleeping,   0 stopped,   0 zombie
Cpu(s):  1.2%us,  0.5%sy,  0.0%ni, 98.0%id,  0.3%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   2055668k total,  1957592k used,    98076k free,   155640k buffers
Swap:  4128760k total,    83644k used,  4045116k free,   718168k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                      
 1250 root      20   0 15028 1080  808 R  5.5  0.1   0:00.04 top                          
    1 root      20   0 19336 1176  976 S  0.0  0.1   0:01.80 init                         
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd                     
    3 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0                  
    4 root      20   0     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/0                  
    5 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 watchdog/0                   
    6 root      20   0     0    0    0 S  0.0  0.0   0:00.15 events/0                     
    7 root      20   0     0    0    0 S  0.0  0.0   0:00.00 cpuset                       
    8 root      20   0     0    0    0 S  0.0  0.0   0:00.00 khelper                      
    9 root      20   0     0    0    0 S  0.0  0.0   0:00.00 netns                        
   10 root      20   0     0    0    0 S  0.0  0.0   0:00.00 async/mgr                    
   11 root      20   0     0    0    0 S  0.0  0.0   0:00.00 pm                           
   12 root      20   0     0    0    0 S  0.0  0.0   0:00.00 sync_supers                  
   13 root      20   0     0    0    0 S  0.0  0.0   0:00.00 bdi-default                  
   14 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kintegrityd/0                
   15 root      20   0     0    0    0 S  0.0  0.0   0:00.45 kblockd/0                    
   16 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kacpid                       
   17 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kacpi_notify                 
   18 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kacpi_hotplug                
   19 root      20   0     0    0    0 S  0.0  0.0   4:02.29 ata/0                        
   20 root      20   0     0    0    0 S  0.0  0.0   0:00.00 ata_aux                      
   21 root      20   0     0    0    0 S  0.0  0.0   0:00.00 ksuspend_usbd                
   22 root      20   0     0    0    0 S  0.0  0.0   0:00.00 khubd                        
   23 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kseriod                      
   25 root      20   0     0    0    0 S  0.0  0.0   0:00.00 khungtaskd                   
   26 root      20   0     0    0    0 S  0.0  0.0   0:07.66 kswapd0                      
   27 root      25   5     0    0    0 S  0.0  0.0   0:00.00 ksmd                         
   28 root      39  19     0    0    0 S  0.0  0.0   0:06.30 khugepaged                   
   29 root      20   0     0    0    0 S  0.0  0.0   0:00.00 aio/0                        
   30 root      20   0     0    0    0 S  0.0  0.0   0:00.00 crypto/0   

답변2

@GHugo의 게시물을 토대로 CPU 부분만 교체했는데 의미 없는 결과가 나왔습니다. Python이 설치되어 있으면 numpyCPU 부분에서 작동할 수 있습니다 psutil.

PY_COMMAND="import psutil;import numpy;print(round(numpy.array(psutil.cpu_percent(percpu=True)).mean(),1))"
echo CPU: $( python -c "${PY_COMMAND}" )

답변3

RAM 사용량 비율: free -m | awk 'NR==2{printf "%.2f%%\t\t", $3*100/$2 }'

사용된 디스크 공간의 비율:df -h | awk '$NF=="/"{printf "%s\t\t", $5}'

CPU 사용량 비율: top -bn1 | grep load | awk '{printf "%.2f%%\t\t\n", $(NF-2)}'

관련 정보