명령줄에서 Linux 시스템의 디스크 공간 정리
5345 단어 bashcodenewbielinuxtodayilearned
최근에 EC2 인스턴스에 연결된 EBS 볼륨이 가득 찼습니다.나는 EC2 실례나 EBS 볼륨의 크기를 업그레이드하는 데 약간의 돈을 쓰고 싶지 않다. 나는 기계에서 공간을 차지하는 불필요한 파일을 어떻게 삭제하는지 탐색하기 시작했다.
나는 리눅스 분야의 전문가가 절대 아니다.그래서 구글에서 20가지 다른 것을 검색해 나를 도와줄 수 있는 해결 방안을 찾았을지도 모른다.쌓인 넘침, 블로그 게시물, 도움말 포럼이 나를 도왔다.
지금, 나는 앞을 보고 나를 돕는 명령을 나누고 있다.
참고 이 명령은 Ubuntu/Debian Linux 릴리스에 적용됩니다.다른 버전의 Linux에 대해서는 거리가 다를 수 있습니다.
디스크 사용 및 사용 가능한 디스크 공간 확인
시스템의 디스크 사용 상태를 확인하고 나머지 여유 공간을 확인하려면 터미널에서 다음 명령을 실행합니다.
df -h
이것은 기계에 설치된 모든 파일 시스템, 위치, 크기, 사용된 저장 공간, 사용 가능한 저장 공간을 보여 줍니다.나에게 있어서, 이 보고서는 나의 루트 파일 시스템이 이미 100% 찼다고 말한다.
자료 출처: https://www.howtogeek.com/409611/how-to-view-free-disk-space-and-disk-usage-from-the-linux-terminal/
불필요한 종속성 자동 제거
Linux 시스템에 종속성을 설치할 때는 일반적으로 고급 패키지 도구 APT를 사용합니다.시간이 지날수록 더 이상 필요하지 않은 패키지가 설치되었을 수도 있습니다.설치할 수 있는 불필요한 종속성을 자동으로 제거하려면 다음을 수행합니다.
sudo apt-get autoremove
자료 출처: https://askubuntu.com/questions/527410/what-is-the-advantage-of-using-sudo-apt-get-autoremove-over-a-cleaner-app캐시된 패키지 정리
기계
/var/cache
디렉터리에 저장된 패키지 파일을 정리하는 것도 도움이 된다.다음 명령을 실행하여 이 작업을 수행할 수 있습니다.sudo apt-get clean
자료 출처: https://www.networkworld.com/article/3453032/cleaning-up-with-apt-get.html패턴과 일치하는 파일 이름 찾기 및 삭제
Git를 사용했을 때, 나는
.gitignore
파일의 가치를 완전히 이해하지 못했다. Git가 일부 파일이나 디렉터리를 소홀히 한다고 알려주었다.나는 이 파일을 충분히 이용하지 못했기 때문에 내 기계에는 .DS_Store
나 NPM 디버깅 로그가 공간을 많이 차지한다.내 기계의 모든 하위 디렉터리
.DS_Store
파일을 찾기 위해 실행했습니다.find . -name ".DS_Store"
이것은 일치하는 모든 파일을 열거하지만, 그것들에 대해 아무런 처리도 하지 않습니다.이것은 더욱 시험 운행과 같다.이러한 파일을 삭제하는 경우 같은 명령을 실행할 수 있지만 다음과 같이 라벨-delete
을 전달합니다.find . -name ".DS_Store" -delete
.gitignore
파일에 이 파일들이 열거되어 있지 않기 때문에 이 파일들은 여전히 원본 코드 관리에 있습니다. 이 변경 사항을 제출하고 추진하며, 이 싫은 파일들을 무시하기 위해 수정.gitignore
파일을 수정해야 합니다.자료 출처: https://unix.stackexchange.com/questions/3672/how-do-i-delete-all-files-with-a-given-name-in-all-subdirectories
모든 하위 디렉터리와 크기를 표시하고 크기에 따라 정렬합니다
나는 나의 많은 항목 중 어느 것이 가장 많은 공간을 차지하는지 보고 싶다.이 목록을 찾기 위해 다음 명령을 실행했습니다. 현재 디렉토리에서 모든 하위 디렉토리를 옮겨다니며 최대에서 최소로 정렬하고 인간이 읽을 수 있는 형식으로 크기를 인쇄합니다.
du -hs * | sort -hr
자료 출처: https://superuser.com/questions/554319/display-each-sub-directory-size-in-a-list-format-using-one-line-command-in-bash디렉토리의 모든 파일 및 디렉토리를 크기별로 나열합니다.
일단 내가 가장 큰 디렉터리를 확정한다면, 나는 그 디렉터리에서 어떤 파일들이 너무 많은 공간을 차지하는지 깊이 연구해야 한다.
다음 명령만 실행하면 지정된 디렉토리에 있는 모든 파일과 디렉토리가 나열됩니다.
ls
그러나 출력을 정렬하고 포맷하기 위해 이 명령에 추가 로고를 전달할 수도 있습니다.다음 명령을 사용하여 디렉토리에서 크기별로 정렬된 모든 파일과 디렉토리를 나열하고 사용자가 읽을 수 있는 형식으로 크기 정보를 표시할 수 있습니다.ls -laSh
자료 출처: https://www.tecmint.com/list-files-ordered-by-size-in-linux/컴퓨터의 모든 위치에서 대형 파일 검색
모든 디렉터리를 훑어보고 필요하지 않은 파일을 정리하거나 더 이상 보여주지 않은 항목을 삭제한 후에도, 나는 여전히 상당 부분의 디스크 공간을 차지한다.나는 내 프로젝트에 무슨 문제가 생겼는지, 아니면 무엇이 모든 공간을 차지했는지 확신하기 어렵다.
다음 명령은 볏짚을 구하는 것이다.이것은 지정한 크기를 초과한 (내 예에서 50MB) 큰 파일을 검색하여 컨트롤러에 출력합니다.
sudo find / -type f -size +50M -exec ls -lh {} \;
나는 나의 발견에 놀랐다.두 가지 가장 큰 주범은 snapd
중의 일부 캐시 파일이다. 나는 더 이상 이 파일과 MongoDB 중의 일부 예비 분배 저장 공간을 필요로 하지 않는다. 이런 유사한 개발 환경에서 나는 그것들을 필요로 하지 않는다.이제 필요 없는 파일과 디렉토리를 삭제하려면
rm <filename>
및 rm -rf <directory name>
만 실행하면 됩니다.자료 출처: https://stackoverflow.com/questions/20031604/amazon-ec2-disk-full/20032145
좋아요!
사진은 Japheth Mast가 Unsplash에서 찍었습니다.
몇 시간 동안의 문제 해결 끝에 나는 마침내 디스크 공간 사용률을 정상 수준으로 회복했고, 나의 EC2 실례는 다시 정상적으로 운행되었다.성공!
Reference
이 문제에 관하여(명령줄에서 Linux 시스템의 디스크 공간 정리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/thawkin3/cleaning-up-disk-space-on-a-linux-machine-from-the-command-line-nbn텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)