[linux] 디스크 사용량 정보 얻기
리눅스 콘솔에서 전체 디스크의 사용량 정보는 df 커맨드로 얻습니다.
df를 실행하면 다음처럼 디스크 파티션별 사용량 정보를 보여줍니다.
Filesystem 1K-blocks Used Available Use% Mounted on
tmpfs 388000 3712 384288 1% /run
/dev/sda2 122981200 11824740 106061300 11% /
tmpfs 1939984 0 1939984 0% /dev/shm
tmpfs 5120 4 5116 1% /run/lock
/dev/sda1 258095 129609 128487 51% /boot/firmware
tmpfs 387996 76 387920 1% /run/user/128
tmpfs 387996 64 387932 1% /run/user/1000
다만 킬로바이트 단위여서 읽기가 다소 어려운 문제가 있습니다. df에는 단위를 보기 쉽도록 환산한 값으로 표현하는 몇 가지 옵션이 있습니다.
-h 옵션
휴먼 리더블(Human Readable) 옵션으로 우리가 사용하는 메가바이트, 기가바이트 단위로 환산해서 보여줍니다. 긴 --human-readable 옵션으로 사용할 수도 있습니다.
Filesystem Size Used Avail Use% Mounted on
tmpfs 379M 3.7M 376M 1% /run
/dev/sda2 118G 12G 102G 11% /
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
/dev/sda1 253M 127M 126M 51% /boot/firmware
tmpfs 379M 76K 379M 1% /run/user/128
tmpfs 379M 64K 379M 1% /run/user/1000
그런데 -h 옵션으로 표시한 화면은 옵션이 없는 처음의 용량 표시와는 다소 차이가 있습니다.
sda2 파티션 용량이 df 결과에서는 123G(122,981,200)로 표시되는데 -h 옵션으로 표시를 하면 118G로 표시가 됩니다.
바이트 단위 크기를 환산하는 기준 단위가 달라서 발생하는 문제로 -h 옵션을 사용하면 1Kbyte = 1024byte, 1Mbyte = 1024Kbyte처럼 2진수를 바이트 계산 방식에 따라 1024로 윗 단위 용량을 환산합니다.
그래서 126G 디스크 용량인 sda2는 118G가 됩니다.
-H 옵션
-h 옵션이 1024로 나누면서 생기는 표기 용량과 실제 용량 표현의 혼동이 있기 때문에 구입할 때 디스크에 표시되는 용량과 일치하도록 1000으로 나눈 환산 결과를 표시하는 대문자 -H옵션이 추가로 있습니다.
-H 옵션을 사용하면 정상적으로 126G로 sda2 파티션이 표현됩니다.
하드웨어 디스크는 128G 드라이브로 sda1과 파티션 정보 등으로 2G가 제외되고 126G가 sda2 파티션이 잡히게 됩니다.
Filesystem Size Used Avail Use% Mounted on
tmpfs 398M 3.9M 394M 1% /run
/dev/sda2 126G 13G 109G 11% /
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 5.3M 4.1k 5.3M 1% /run/lock
/dev/sda1 265M 133M 132M 51% /boot/firmware
tmpfs 398M 78k 398M 1% /run/user/128
tmpfs 398M 66k 398M 1% /run/user/1000
용량 표현의 차이
순서대로 표시 용량이 작아집니다.
- -H: 업계 디스크 용량 표시 방법에 따라 1000 단위로 환산을 합니다. 128G로 표시된 디스크는 128G가 됩니다.
- 옵션 없는 df: 1Kbyte = 1024byte로 환산하고 나머지는 1000으로 환산합니다. 128G로 표시되는 디스크는 125G로 표시됩니다.
- -h: 2진수 바이트 환산 방식에 따라 1024로 나누기를 합니다. 128G로 표시된 디스크는 119.2G가 됩니다.
전체 디스크 공간, 또는 파티션 공간을 확인할 때는 -H 옵션을 사용해서 확인하고 실제 디스크에서 차지하고 있는 전체 파일의 합을 확인하고 싶으면 -h 옵션을 사용하면 됩니다.