사용 가능한 메모리를 백분율로 표시하고 싶습니다. 나는 사용 가능한 메모리가 아니라 사용된 메모리를 표시하고 있다고 확신합니다. 아니면 내가 틀렸나요?
mem=`free -m | awk 'NR ==2{printf $3,$2,$3*100/$2}'`
echo $mem
답변1
사용 가능한 메모리 양을 백분율로 표시하려면 열 4(사용 가능)를 열 2(전체)로 나누고 그 결과에 100을 곱합니다.
예를 들어:
[user@localhost ~]$ free | awk '/^Mem/ { printf("free: %.2f %\n", $4/$2 * 100.0) }'
free: 97.32 %
사용된 금액을 표시하려면 3열(사용함)을 2열(전체)로 나누고 그 결과에 100을 곱하면 됩니다.
[user@localhost ~]$ free | awk '/^Mem/ { printf("Used: %.2f %\n", $3/$2 * 100.0) }'
Used: 2.75 %
%g를 사용하여 지정된 유효 자릿수로 반올림할 수 있습니다.
예를 들어, 부동 소수점 값이 아닌 정수만 필요한 경우 지정된 부동 소수점 자릿수를 0(영)으로 변경할 수 있습니다. 첫 번째 예에서 %.2f는 2개의 부동 소수점 값을 나타냅니다.
다음은 부동 소수점 값 0의 예입니다.
[user@localhost ~]$ free | awk '/^Mem/ { printf("Used: %.0f %\n", $3/$2 * 100.0) }'
Used: 3 %
여기에도 답변이 있습니다.
https://stackoverflow.com/questions/10585978/linux-command-for-percentage-of-memory-that-is-free
답변2
이 시도,
free | awk '/^Mem/ { a=(($3-$7)/$2 * 100); print a"% of Memory used" }'
3.43143% of Memory used
free | awk '/^Mem/ { a=(($4+$7)/$2 * 100); print a"% of Memory free" }'
96.5662% of Memory free
free | awk '/^Mem/ { a=(($7)/$2 * 100); print a"% of Memory cached" }'
80.4204% of Memory cached
참고: 값을 교차 확인하세요.glances