기타/프로그래밍

[서버관리 / Linux] 서버 용량 관리하기

코드아키택트 2022. 3. 8. 17:58
반응형

 요즘 이러저러한것들을 벌여놓았더니, 블로그 관리가 소홀하다. 안하고 있어도 뷰가 꽤나 나오긴 하지만. 어쨋든 오늘은 서버관리로 고생하고 있을 대학원생들을 위해 글을 쓴다. 

 연구실에 갔는데, 동기가 서버에 conda설치 문제로 씨름하고 있었다. 용량이 꽉찼다는 내용의 에러 메세지였다. 해결했던 내용을 기반으로 다시 정리해서 썼으며, 아래 그림에 나오는 Path들은 본인 실정에 맞게 대체해서 쓰면 될 것 같다


용량 문제의 종류

 크게 두가지 경우로 나눠서 볼  수 있음. iNode라고 하는 index파일이 꽉차거나, 윈도우 처럼 하드디스크 용량 자체가 꽉찬 경우가 있음. 여기선 하드디스크 용량이 꽉찬 경우만 이야기함. sudo권한으로 해야하는 내용들이 있으니 꼭 root계정으로 진행할 것


해결 과정

1. 용량이 꽉찬 disk찾기

리눅스의 파일관리 시스템은 윈도우와 다르다함. 즉, 컴퓨터에 달린 드라이브 별로 C:,D:,E:...으로 나열되는 윈도우와 다르게 리눅스는 /ext, /ext1 …등으로 이름이 나온다고 함. 

# df

terminal에 df 를 입력하면 대략 아래와 같은 이미지를 볼 수 있음. 아래 이미지는 맥북기준으로 캡쳐했기 때문에, Linux에서 보이는 결과는 다를 것임

위의 그림을 기준으로 설명을 이어감. 예를들어 /dev/disk3s5가 꽉찼다고 가정함. 여기서 Mounted on 탭에 있는 값을 기억해야함. /System/Volumes/Data가 여기 해당됨. 각 디스크가 특정 폴더의 용량을 관리하는데 여기서는 /System/Volumes/Data가 이에 해당함


2. 큰 용량 파일 찾기

폴더안에서 용량이 큰 파일 n개를 찾는 스크립트임

# du -a 위치 | sort -n -r | head -n 원하는 숫자

예) /System/Volumes/Data 안에 용량이 가장 큰 상위 5개 폴더 및 파일 나열

# du -a /System/Volumes/Data | sort -n -r | head -n 5

조금 기다리면 아래와 같이 결과를 받을 수 있다


3. 삭제

삭제 커맨드는 간단하다. 여기선 “삭제할 것입니까?”라는 메세지가 안뜨는 커맨드를 쓰겠다.

# rm -rf 원하는 위치

예)

# rm -rf /System/Volumes/Data/Users/heejinchae

rm은 삭제 커맨드이고 rf는 옵션이다. r은 recursive의 약자로, 만약 지우고자 하는게 디렉토리(폴더)라면 그 아래의 모든 폴더를 다 지운다. f는 아마 force의 약자일 것이다. “Delete Yes or No?” 와 같은 창을 없애는 역할을 한다. 옵션에 관한 자세한걸 보기 위해선 man rm 이런 식으로 치면 나온다. 여기서 man은 manual의 약자다.

 따라서 지우기전에 반드시 본인이 뭘 지우는지 두세번 확인해야한다. 왜냐햐면 커맨드를 입력하면 왠만하면 1초사이에 모든게 지워진다

 만약 파일을 하나하나 확인하면서 지우고 싶다면 아래의 커맨드를 입력하면된다

# rm -ri

 

반응형