리눅스 nas 용량 확인 - linugseu nas yonglyang hwag-in

리눅스 nas 용량 확인 - linugseu nas yonglyang hwag-in

리눅스 디스크 용량 및 저장 공간 확인, 부족 시 대처법

리눅스 nas 용량 확인 - linugseu nas yonglyang hwag-in
이웃삼촌2021. 7. 19. 19:28

Linux ::

리눅스 디스크 용량 및 저장 공간 확인

리눅스 계열 서버 디스크 용량 및 저장 공간 확인 및 부족 시 대처법

이번 포스팅의 주 목적은 리눅스 계열 서버를 운용하다 보면 갑자기 디스크 사용률이 100%가 찾을 경우, 어느 경로에 파일이 꽉 찾으며 어떻게 해결해야 하는가에 대한 설명을 위한 포스팅이다.

이를 위해 알아야 할 기본적인 명령어들은 df 와 du이다.

#리눅스저장공간확인 #리눅스디스크용량확인 #centos저장공간확인 #centos디스크용량확인 및 부족 시 조치 방법에 대해서 알아보도록 한다.

리눅스 nas 용량 확인 - linugseu nas yonglyang hwag-in

df는 disk free의 줄임말이다.

리눅스 계열 서버의 디스크 공간을 확인하기 위한 명령어이다.

df [옵션] [경로] 형태로 사용하는데, 경로를 생략하면 전체 시스템의 디스크를 보여준다.

옵션은 다양한 값들이 있는데 나는 주로 -h 외엔 잘 사용하지 않는다.

사용 예시를 보면 먼저 df만 쳤을 때의 결과이다.

[hithere@hithere ~]$ df Filesystem 1K-blocks Used Available Use% Mounted on devtmpfs 3953640 0 3953640 0% /dev tmpfs 3971036 0 3971036 0% /dev/shm tmpfs 3971036 353704 3617332 9% /run tmpfs 3971036 0 3971036 0% /sys/fs/cgroup /dev/mapper/centos-root 52403200 21870408 30532792 42% / /dev/nvme0n1p2 1038336 212872 825464 21% /boot /dev/nvme0n1p1 204580 11428 193152 6% /boot/efi /dev/mapper/centos-home 426295940 49284752 377011188 12% /home tmpfs 794208 0 794208 0% /run/user/100

시스템의 전체 공간을 보여준다고 생각하면 된다.

1k-blocks가 해당 폴더의 용량이며 Used는 사용 중인 공간, Available 가 사용 가능한 공간, Use는 현재 사용량을 %로 보여준다.

하지만 한눈에 들어오지는 않는다.

이때 -h 옵션을 사용하는데, h는 human의 줄임말이다.

즉 사람이 보기 좋게 표기해 준다는 뜻 정도로 생각하면 될 것 같다.

해당 옵션을 사용해보면 다음과 같다.

[hithere@hithere ~]$ df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 3.8G 0 3.8G 0% /dev tmpfs 3.8G 0 3.8G 0% /dev/shm tmpfs 3.8G 346M 3.5G 9% /run tmpfs 3.8G 0 3.8G 0% /sys/fs/cgroup /dev/mapper/centos-root 50G 21G 30G 42% / /dev/nvme0n1p2 1014M 208M 807M 21% /boot /dev/nvme0n1p1 200M 12M 189M 6% /boot/efi /dev/mapper/centos-home 407G 48G 360G 12% /home tmpfs 776M 0 776M 0% /run/user/1000

용량을 보기 좋은 단위로 표기해 주고 있으며, 한눈에 이해가 된다.

du는 disk usage의 약자이다.

리눅스 계열 서버의 디스크 사용률을 구하기 위해 사용한다.

df [옵션] [경로] 형태로 사용하는데, 마찬가지로 경로는 생략이 가능하다.

이 역시 df 와 마찬가지로 다양한 옵션이 있는데, 마찬가지로 -h 외엔 잘 사용하지 않는다.

사용 예시를 보면

[hithere@hithere ~]$ du /home/hithere/ 48395900 /home/hithere/hithereLog/tc_log/hithere/nohup 297672 /home/hithere/hithereLog/tc_log/hithere/gclog 188600 /home/hithere/hithereLog/tc_log/hithere/access 48909236 /home/hithere/hithereLog/tc_log/hithere 48909236 /home/hithere/hithereLog/tc_log

hithere 경로를 기준으로 해당 폴더들이 사용 중인 공간을 보여준다.

마찬가지로 보기 쉽지 않다.

-h 옵션을 사용해보면

[hithere@hithere ~]$ du -h /home/hithere/ 47G /home/hithere/hithereLog/tc_log/hithere/nohup 291M /home/hithere/hithereLog/tc_log/hithere/gclog 185M /home/hithere/hithereLog/tc_log/hithere/access 47G /home/hithere/hithereLog/tc_log/hithere 47G /home/hithere/hithereLog/tc_log

마찬가지로 보기 좋게 정렬이 되어 어느 폴더가 얼마나 사용 중 인지를 알 수 있다.

테스트를 위해 톰켓을 띄우고 몇 달간 로그를 찍었더니 용량이 47GB나 쌓였다.

디스크 사용률이 100%일 때 어느 구간인지 확인하기

이제는 실무에서 자주 사용하고 있으며, 현재도 자주 사용하는 명령어에 대해 포스팅해본다.

우선 리눅스 서버를 운용 중이라면 수시로 디스크 상태를 체크할 것이라 생각된다.

특히나 중요한 시스템이라면 다양한 방식(문자메시지, 카카오톡, 모니터링 등)을 사용해 알람을 줄 것이다.

임계치를 90%로 설정해놨을 경우 디스크 사용률이 90%가 넘으면 알림이 오고 서버 관리자는 확인을 해볼 것이라 생각된다.

최초에는 df 명령어를 통해 전체 디스크 상황을 확인한 다음, 조치를 취해야 한다.

df 명령어를 통해 확인해본 결과 /home/hithere 의 경로의 디스크 사용률이 90%라는 걸 알게 되었다면, 다음과 같은 명령어를 통해 확인이 가능하다.

[hithere@hithere ~]$ du /home/hithere/ | sort -n | tail -5 48395900 /home/hithere/hithereLog/tc_log/hithere/nohup 48909236 /home/hithere/hithereLog/tc_log 48909236 /home/hithere/hithereLog/tc_log/hithere 49127792 /home/hithere/hithereLog 49248176 /home/hithere/

이는 /home/hithere 하위 경로를 기준으로, 가장 많은 용량을 사용 중인 폴더를 구분하는 방법이다.

즉 /home/hithere/hithereLog/tc_log/hithere/nohup 경로에 고용량의 파일이 쌓였으니, 이 부분을 확인해보면 된다고 해석하면 된다.

해당 경로로 이동하면 어마어마한 로그 파일이 쌓여있을 것이다.

그럼 저 명령어는 어떻게 만들어졌는지 확인을 해본다.

먼저 sort 옵션을 통해 정렬을 해본다.

[hithere@hithere ~]$ du -h /home/hithere/ | sort -n 0 /home/hithere/.config 0 /home/hithere/.config/abrt ... 996K /home/hithere/tomcat/domains/schoolap/work/Catalina/localhost/ROOT/org/apache/jsp/WEB_002dINF 996K /home/hithere/tomcat/domains/schoolap/work/Catalina/localhost/ROOT/org/apache/jsp/WEB_002dINF/view

전체 내용이 너무 길어 중간에 ...는 생략된 부분이다.

sort 명령을 통해 정렬을 하니 파일의 사이즈 크기별로 정렬이 되었다.

그런데 여기서 이상한 점이 하나 있는데, 제일 큰 파일의 용량이 996k 밖에 안된다는 것이다.

분명 저 위에는 45GB의 파일이 있어야 하는데...

그 이유는 전체 내용 중 중간에 생략된 부분을 보면 알 수 있다.

44K /home/hithere/tomcat/apache-tomcat-8.5.49/webapps/examples/jsp/tagplugin 44K /home/hithere/tomcat/applications/hithere.war/css/images 47G /home/hithere/ 47G /home/hithere/hithereLog 47G /home/hithere/hithereLog/tc_log 47G /home/hithere/hithereLog/tc_log/hithere 47G /home/hithere/hithereLog/tc_log/hithere/nohup 47M /home/hithere/tomcat/applications/device 48K /home/hithere/tomcat/apache-tomcat-8.5.49/webapps/examples/jsp/jsp2/tagfiles

-h 옵션을 사용했기 때문에 MB 나 GB 단위로 변경이 되면서 47G가 48K 보다 작은 것처럼 정렬이 되었다.

이로써 크기별로 정렬 시에는 -h 옵션을 사용해서는 안 된다는 것을 알 수 있다.

해당 옵션을 지우고 다시 확인해보니

[hithere@hithere ~]$ du /home/hithere/ | sort -n 0 /home/hithere/.config 0 /home/hithere/.config/abrt ... 49127792 /home/hithere/hithereLog 49248176 /home/hithere/

정상적으로 정렬이 되는 것을 볼 수 있었다.

그럼 마지막으로 뒤에 tail 옵션은 무엇일까?

tail이라는 단어는 꼬리라는 뜻의 단어인 것처럼, 지정된 파일의 가장 마지막을 보여주는 명령이며, 뒤에 - 다음 붙은 숫자만큼의 라인을 보여준다.

로그를 모니터링하는 경우 이 tail 명령어를 자주 쓴다.

결국은 지정된 경로 하위의 폴더나 파일들을 사이즈 별로 정렬한 다음, 가장 큰 공간을 차지하고 있는 경로를 보여주는 명령어인 셈이다.

이 명령어를 통해 리눅스 계열 서버 용량 관리 편리하게 할 수 있다.