Bash 스크립트에서 top 명령을 실행하고 싶습니다
문제는 일반적으로 콘솔에 top 명령을 입력할 때 Ctrl+를 눌러 종료한다는 것 입니다 C.
하지만 top
bash 스크립트에서 명령을 실행할 때 어떻게 종료합니까?top
예를 들어 bash의 상단에서 사용 가능한 메모리를 인쇄하는 방법은 무엇입니까?
다음을 수행했지만 설명한 대로 명령이 값을 반환하지 않습니다.
top | grep Mem: | awk '{print $6" "$7}'
콘솔에서 top을 실행할 때:
top
top - 17:55:24 up 20 days, 8:05, 3 users, load average: 0.08, 0.08, 0.04
Tasks: 93 total, 1 running, 92 sleeping, 0 stopped, 0 zombie
Cpu(s): 1.0%us, 3.2%sy, 0.0%ni, 95.2%id, 0.5%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 2075516k total, 1731156k used, 344360k free, 373308k buffers
Swap: 4192924k total, 76k used, 4192848k free, 1130448k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 15 0 2072 656 568 S 0.0 0.0 0:01.36 init
.
.
.
답변1
옵션 관점에서 볼 때 @jimmij의 대답은 좋습니다 top
. 그러나 출력 형식을 top
이식 가능한 방식으로 신뢰할 수 없는 것처럼 보입니다.
해당 유틸리티가 없다고 말씀하셨지만 free
이것은 단지 인터페이스에 대한 래퍼일 뿐이며 /proc/meminfo
거의 확실히 그렇습니다. 말의 입(커널)에서 직접 필요한 정보를 얻으십시오.
$ grep MemFree: /proc/meminfo
MemFree: 75916 kB
$
또는 다음을 통해 단일 숫자로 형식을 지정하려는 경우 awk
:
$ awk '$1=="MemFree:" {print $2}' < /proc/meminfo
74320
$
답변2
이 시도:
top -bn1 | awk '$1=="Mem:" {print $6" "$7}'