아마존 웹 서비스(AWS) S3의 정적 웹사이트 www 리다이렉트 시키기
Ubuntu 용량이 부족할때, 큰 용량의 파일 찾기와 오래된 커널 파일 지우기
2019-05-31
Explanation
오늘은 회사에서 사용하던 하나의 서버에서 하드디스크 용량이 부족해서 생긴 문제와 그에 대한 해결에 대해 적어보려합니다.
(글에서의 환경은 AWS의 EC2(클라우드 컴퓨팅)로 OS는 Ubuntu 18.04.2 LTS 입니다.)
참고.
1. http://blog.naver.com/writer0713/220919969092
2. https://zetawiki.com/wiki/리눅스_디렉토리_용량_확인_du
3. https://ngee.tistory.com/677
4. https://tesilio.github.io/ubuntu-low-free-space
정확하게 기억은 나지 않는데, 아래로 문구로 시작하는 오류였어요.
1 |
No space left on device (28) ... |
공간이 부족하다고 하지만 그래도 일단 검색을 해보니, 역시 하드디스크의 용량이 부족해서 발생하는 오류 메시지였어요. 하지만 해당 서버가 간단한 서비스를 하고 있는 서버여서 사실 그렇게 큰 용량을 사용하고 있을리 없는데 이상했지만… 일단 용량을 확인해봐야겠죠?
1 |
df -h |
저는 Ubuntu를 사용하지만 커맨드는 리눅스 기반은 거의 동일할거에요.
우선 간단하게 제가 사용하는 EC2에서 확인하면 위와 같이 나오는데 저기에 /dev/xvda1가 저는 99% 였어요.
그리고 일단은 제가 많이 사용하는 /home/ubuntu 디렉토리에 100MB 이상의 파일을 찾아봤습니다.
1 |
find /home/ubuntu -size +100000 -print |
1 |
.../.git/objects/pack/pack-345520af9dff1dcfd80c8964d86524cf49d04a94.pack |
대략 저는 저렇게 git의 pack 파일이 몇 개 발견되었지만 사실 저것만으로 용량이 꽉차는건 말이 안되고 git의 pack 파일은 지우기가 곤란해서 다른 문제를 찾아봐야 했어요.
그리하여 아래의 현재 폴더에 있는 용량을 확인하는 명령어를 사용하여 문제의 파일을 찾아봤는데요.
1 |
du -hs * |
최종적으로 /usr/src 디렉토리에 많은 양의 용량을 사용하고 있는 것을 찾을 수 있었답니다. 그리고 그곳에는 ‘linux-aws-headers…’ 라는 파일들이 있었고 다시 검색을 해보니 그 파일들은 우분투의 커널 파일들이었어요. 그리고 오래된 커널들은 지워줘도 된다는 것을 확인! 그리고 아래의 커맨드를 통해서 깔끔하게 사용하고 있지 않은 커널 파일을 삭제할 수 있답니다.
1 |
sudo apt autoremove --purge |
그런데 저는 ‘You might want to run ‘apt-get -f install’ to correct these…’ 라는 오류가 출력이 되었고
시키는 대로 ‘apt-get -f install’ 먼저 하고 위 커맨드를 실행하였습니다.
그러면 하나둘씩 오래된 커널 파일과 관련 설정 파일들을 쭉 찾아 지우는 작업을 수행한답니다~
‘apt autoremove’는 사용하지 않는 패키지를 삭제하는 커맨드이고 ‘–purge’는 설정 파일도 함께 삭제하는 옵션입니다.
만약에!
1 |
sudo apt autoremove --purge |
이렇게 명령어를 입력했을 때, 위처럼 뭔가 필요한 패키지를 설치하라는 알림이 출력 되었을 때,
그 필요한 패키지를 설치할 만큼의 용량마저 부족할 때!
1 |
sudo apt-get clean |
위 커맨드로 캐시를 비워서 공간을 확보할 수 있습니다!