디스크 공간을 확보하려면 어떻게합니까?


181

우분투 클라우드 서버에는 900MB의 디스크 공간 만 남았습니다.

/ tmp 디렉토리를 비우고 정리할 다른 위치가 있는지 궁금합니다.


1
이것도 시도하십시오 : dpkg -l | grep ^ rc | 컷 -d ''-f3 | xargs sudo apt-get purge -y
crsuarezf

docker를 사용하는 경우 : docs.docker.com/config/pruning
Gerard Carbó

많은 경우 :sudo docker container prune -f && sudo docker image prune -f
smftr

답변:


104
sudo apt-get autoremove

그것은 교체 된 많은 구퍼 (구 커널 등)를 정리할 수 있습니다. Synaptic에서도 비슷한 작업을 수행 할 수 있습니다 (로드하고 상태 단추를 선택한 다음 자동 제거 가능 옵션).


응용 프로그램이 의존하는 필요한 패키지를 제거하는 것처럼 실행중인 응용 프로그램에는 영향을 미치지 않습니까?
user3215

1
자동 제거는 고아 패키지, 즉 사용자가 명시 적으로 설치하지 않은 (자동으로 표시된 패키지) 종속성이없는 패키지를 찾습니다. aptitude대신에 사용하면 apt-get정리할 수 있지만 보안 업데이트가 나오면 이전 설치에서 설치된 커널 뗏목을 수집하는 것이 일반적입니다.
Oli

1
내 마지막 의견에 오타가 있습니다. 분리 된 패키지는 "종속성이없는"패키지가 아니라 의존하지 않는 패키지입니다. 그것들은 의존성이있을 수 있으며 고아 패키지에 대해서만 존재하면 제거됩니다. 때로는 (심도 깊은 종속성 트리를 사용하여) 정리하는 데 몇 가지 자동 제거가 필요할 수 있습니다.
Oli

5
위의 명령은 확실히 유용하지만 언급 된대로 이전 커널을 제거 하지는 않습니다 . 수동으로 또는 우분투 트 위크와 같은 추가 도구를 사용하여 수행해야합니다.
codeling

1
@nyarlathotep 커널 헤더 파일 제거합니다. 언뜻보기에 이전 커널을 제거한다고 생각할 수 있습니다-이전 커널은 남아 있습니다 (시도 dpkg --get-selections | grep linux-image).
drevicko

211

이미 설치된 (및 더 이상 필요하지 않은) 다운로드 된 패키지 (.deb)를 삭제하려면

sudo apt-get clean

더 이상 다운로드 할 수없는 패키지 (더 이상 리포지토리에 없거나 리포지토리에 최신 버전의 패키지)에 대해 캐시에 저장된 모든 아카이브를 제거합니다.

sudo apt-get autoclean

불필요한 패키지를 제거하려면 (앱을 제거한 후 더 이상 패키지가 필요하지 않을 수 있습니다)

sudo apt-get autoremove

이전 커널 버전을 삭제하려면

sudo apt-get remove --purge linux-image-X.X.XX-XX-generic

제거 할 커널 버전을 모르는 경우

dpkg --get-selections | grep linux-image

출처 : Limpiando Ubuntu : comandos y programas (actualización) ( Google 번역 )


1
달리기는 clean꽤 많은 공간을 확보했습니다. 직후, 나는 도망 autoclean내 여유 공간이 갔다 아래로 45메가바이트에 의해. clean다시 실행 하면이 추가 공간이 해제됩니다.
Drew Noakes

8
나는에 의해 나열된 모든 리눅스 이미지를 제거 dpkg --get-selections | grep linux-image하는 나에게 부팅 오류의 원인을 - 우분투는 GRUB 부트 메뉴에서 사라 - 이 대답은 최신 이미지 제거하지 않으려 - 문제 해결
laplasz

리눅스 이미지를 제거 할 때 정확히 무엇을하고 있습니까?
Menelaos Bakopoulos

4
좋아, 이것은 이미 100 번 (이 스레드에서) 답을했다, 하지만 난 그것을 찾을 정말 때문에, 160 번 이상 upvoted 수 : sudo apt-get clean 그것은 -simply- 할 패키지를 패키지의 모든 로컬 복사본을 제거 당신이 가질 수 설치 + 업그레이드를 수행 할 때 다운로드됩니다. 이것은 / var / cache / apt / archives 디렉토리를 거의 비 웁니다. ... 그래서 당신은 실행할 때 sudo apt-get update그것은 것입니다 (이 이미) 모든 것을 다시 다운로드합니다. 그냥 머리 위로! .. : :)
Nostromov

168
  • 현재 디렉토리에서 상위 10 개의 가장 큰 하위 디렉토리를 표시합니다.

    du -sk * | sort -nr | head -10
    
  • 디스크 공간이 시각적으로 어디로 가는지 보려면 filelight 또는 kDirStat를 사용하십시오.

  • 오래된 커널이 있는지 확인하십시오.

    ls -lh /boot
    
  • 청소 패키지

    sudo apt-get autoremove
    sudo apt-get autoclean
    

    크기별로 정렬 된 설치된 모든 패키지 목록을 참조하십시오. 큰 것을보고 사용하지 않으면 제거하십시오.

    dpkg-query -W --showformat='${Installed-Size} ${Package}\n' | sort -nr | less
    
  • 사용하지 않는 언어 파일을 번역으로 정리하십시오 (많은 것들이 있습니다)

    sudo apt-get install localepurge
    
  • / var / tmp /의 내용을 확인하십시오

    du -sh /var/tmp/
    
  • 또한 확인

    man deborphan
    
  • 큰 파일 검색 :

    find / -type f -size +1024k
    

    또는

    find / -size +50000  -exec ls -lahg {} \;
    
  • 큰 설치 패키지

    dpigs
    

이것은 패키지의 일부입니다 : debian-goodies


4
내가 제안하는 큰 파일을 찾으 ncdu려면 디스크 공간을 사용하는 디렉토리를 빠르게 확인할 수 있습니다.
rubo77

1
kDirStat다음으로 대체되었습니다 :baobab
rubo77

17

방금 오래된 커널과 헤더 파일을 제거하여 거의 2 기가를 확보했습니다.

사용하다

uname -r

현재 버전을 확인한 다음

dpkg -l linux-image-* linux-headers-*

모든 오래된 커널과 헤더 파일을 보려면

sudo apt-get remove linux-image-<XYZ> linux-headers-<XYZ>

apt-get remove명령은 와일드 카드를 지원하므로 apt-get remove linux-image 3.0.* linux-headers-3.0.*예를 들어 한 번에 여러 개를 제거 할 수 있습니다 .

물론 현재 커널을 제거하지 마십시오! 그리고 아마도 하나 또는 두 개의 이전 버전을 유지하십시오.


와일드 카드에 관한 내용은? 그것을 사용하기 전에 그것을 시도하고 내가 원하는 것보다 더 많이 얻었 기 때문에 그것을 다시 확인했습니다. 어떤 식 으로든 채워 넣었을 가능성은 있지만 (아마도) 내가 원하는 것보다 많은 헤더를 잃어버린 방법을 모르겠습니다.
glaucon

와일드 카드는 글롭이 아닌 정규식 와일드 카드입니다.
차이 티 렉스

13

휴지통 비우는 것을 잊지 마십시오.

여기에 이미지 설명을 입력하십시오


또는 명령 줄에서 :

rm -r ~/.local/share/Trash/info/ && rm -r ~/.local/share/Trash/files/  

11

우분투의 모든 것을 청소하는 BleachBit 프로그램을 추천합니다.

다음 명령을 사용하여 설치하십시오.

sudo apt-get install bleachbit


11

사용하지 않는 큰 패키지 제거

일부 패키지는 상당히 클 수 있습니다. 이것을 찾는 편리한 방법은 사용하는 것 dpigs입니다. 기본적으로 설치되어 있지 않지만 debian-goodies( GitHub 프로젝트 ) 에서 찾을 수 있습니다

sudo apt-get install debian-goodies

그때:

$ dpigs
419576 texlive-latex-extra-doc
204112 nvidia-319
175463 google-chrome-stable
141058 linux-image-extra-3.11.0-15-generic
113173 libreoffice-core
104822 valgrind
102322 qt4-doc
93337 blender
91105 texlive-pstricks-doc
90517 libboost1.53-dev

몇 가지 옵션이 있습니다.

-n, --lines=N
  Display the N largest packages on the system (default 10).
-s, --status=status-file
  Use status-file instead of the default dpkg status file.
-S, --source
  Display the largest source packages of binary packages installed
  on the system.
-H, --human-readable
  Display package sizes in human-readable format (like ls -lh or du -h)
-h, --help
  Display this message.

10

이전 커널 버전을 모두 자동으로 제거

주의 : 커널을 업그레이드 한 경우 이전 버전을 삭제하기 전에 재부팅하십시오!

어떤 커널을 사용하고 있는지 확인하십시오 :

uname -r

그런 다음 루트로

sudo apt-get remove --purge $(dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d')

이 명령으로 필요한 커널을 제거하지 않도록 해당 스레드 를 읽으십시오 !


8

UFW를 사용하는 경우 로그 폴더를 확인하십시오. 내 컴퓨터 중 하나에서 UFW는 며칠 안에 8Gb의 로그를 생성했습니다.

다음을 사용하여 apt 캐시를 비울 수도 있습니다.

sudo apt-get clean

UfW 로그 파일을 찾을 수 있습니까?
호기심 견습생

8

BleachBit ( sourceforge에 위치)을 사용해보십시오 . 훌륭한 프로그램입니다. 기본적인 아이디어는 디스크 공간을 빠르게 확보하고 시스템에 숨겨진 많은 정크를 제거한다는 것입니다. 인식하고 깨끗하게 닦을 수있는 약 70 개의 응용 프로그램이 있습니다. 사용 가능한 디스크 공간을 "닦아 내기"위해 사용할 수도 있습니다. 나는 리눅스에서만 Windows의 CCleaner라고 생각합니다.


3
이 질문은 특별히 서버 도구를 요구하며 이것은 데스크탑 프로그램입니다 (X 디스플레이 필요).
Ryre

지금까지 최고의 도구!
Roger

8

많은 수의 로그 파일도 확인하십시오.

sudo du -h /var/log

또는 rubo77 이 권장하는대로 NCurses 디스크 사용 도구를 사용할 수 있습니다.

sudo ncdu /var/log

"로그 파일 수"가 아닌 파일 크기를 나열하는 편리한 명령
dogmatic69

또는 사용sudo ncdu /var/log
rubo77

@ rubo77, 고마워, 정말 좋은 도구입니다!
Drew Noakes

4

먼저 모든 큰 폴더와 파일을 나열하는 도구가 있습니다. 런처에 '바오밥'을 입력하십시오. 폴더와 파일을 제거하면 더 많은 공간이 필요하지 않습니다.


그런 다음 이중 파일을 제거하는 프로그램이 있습니다. 이 프로그램을이라고 fslint합니다. 입력하여 설치

sudo apt-get install fslint

터미널에서.

또는 그래픽으로

소프트웨어 센터를 통해 fslint 설치


패키지 캐시를 지울 수도 있습니다.

sudo apt-get autoclean
sudo apt-get clean
sudo apt-get autoremove

네 번째 단계는 이전 커널 항목을 제거하는 것입니다. Synaptic을 설치하고 열어서이를 수행 할 수 있습니다. Synaptic에서 이전 커널 항목 (최신을 제외하고 GRUB에 표시되는 모든 커널 항목)을 검색하여 제거하십시오.


한 가지 좋은 단계는 응용 프로그램 캐시를 제거하는 것입니다. 다음을 설치하고 실행하여 수행하십시오 bleachbit.

sudo apt-get install bleachbit

또는 그래픽으로

소프트웨어 센터를 통해 블리치 비트 설치

중요 : 삭제 된 캐시를 복원 할 수 없습니다!


마지막 단계는 파일 시스템 조각 모음입니다. 이를 위해 다음을 수행하십시오.

cd $HOME
git clone git://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git
cd e2fsprogs
./configure
make

이 명령을 사용하여 e2fsprogs를 다운로드하고 컴파일합니다. (귀하 또는 커뮤니티가 프로그램을 설치하는 더 좋은 방법을 찾았다면 편집하십시오!)

또한 git-core설치되어 있는지 확인하십시오 . 그렇지 않은 경우 다음을 실행하십시오.

sudo apt-get install git-core 

또는 소프트웨어 센터 사용 소프트웨어 센터를 통해 git-core 설치

이제 다음을 사용하여 프로그램을 실행할 수 있습니다.

cd $HOME/e2fsprogs/misc
./e4defrag /dev/sda1    #defragment /dev/sda1
./e4defrag -v /dev/sda1 # verbose output
./e4defrag -c /dev/sda1 # see overview of fragmentation status

/ dev / sda1을 원하는 파일 시스템 또는 폴더 / 파일로 바꾸십시오. 장치 (예 : HDD)를 조각 모음하려면 루트 권한이 필요하지만 자신의 파일에는 필요하지 않습니다.


출처 (독일어) : here


와우, 오래된 리눅스 헤더와 리눅스 이미지 버전을 삭제하면 10.04 설치시 약 반 정도의 여유가 생겼습니다. fslint도 훌륭한 발견입니다. 감사.
braddock

baobab 대신 명령 줄 도구 ncdu를 사용하여 큰 폴더와 파일을 찾을 수도 있습니다.sudo apt-get install ncdu
rubo77

4

클리너 스크립트

이 스크립트는 콘솔에서 가장 큰 청크를 실행합니다.

  • 적절한 캐시 캐시
  • 제거 된 .deb 패키지에서 남은 구성 파일을 제거합니다 ( --purge스위치를 사용하지 않으면 발생할 수 있음 apt-get).
  • 사용중인 커널을 제외한 모든 커널을 제거하십시오.
  • 모든 사용자의 휴지통 비우기 (루트 포함)

이 내용으로 파일을 작성하고 실행 권한을 부여하십시오.

#!/bin/bash
# Adapted from 71529-ubucleaner.sh - http://www.opendesktop.org/CONTENT/content-files/71529-ubucleaner.sh

OLDCONF=$(dpkg -l|grep "^rc"|awk '{print $2}')
CURKERNEL=$(uname -r|sed 's/-*[a-z]//g'|sed 's/-386//g')
LINUXPKG="linux-(image|headers|ubuntu-modules|restricted-modules)"
METALINUXPKG="linux-(image|headers|restricted-modules)-(generic|i386|server|common|rt|xen)"
OLDKERNELS=$(dpkg -l|awk '{print $2}'|grep -E $LINUXPKG |grep -vE $METALINUXPKG|grep -v $CURKERNEL)
YELLOW="\033[1;33m"; RED="\033[0;31m"; ENDCOLOR="\033[0m"

if [ $USER != root ]; then
  echo -e $RED"Error: must be root! Exiting..."$ENDCOLOR
  exit 0
fi

echo -e $YELLOW"Cleaning apt ..."$ENDCOLOR
aptitude clean
apt-get autoremove
apt-get autoclean

echo -e $YELLOW"Those packages were uninstalled without --purge:"$ENDCOLOR
echo $OLDCONF
#apt-get purge "$OLDCONF"  # fixes the error in the original script
for PKGNAME in $OLDCONF ; do  # a better way to handle errors
  echo -e $YELLOW"Purge package $PKGNAME"
  apt-cache show "$PKGNAME"|grep Description: -A3
  apt-get -y purge "$PKGNAME"
done

echo -e $YELLOW"Removing old kernels..."$ENDCOLOR
echo current kernel you are using:
uname -a
aptitude purge $OLDKERNELS

echo -e $YELLOW"Emptying every trashes..."$ENDCOLOR
rm -rf /home/*/.local/share/Trash/*/** &> /dev/null
rm -rf /root/.local/share/Trash/*/** &> /dev/null

echo -e $YELLOW"Script Finished!"$ENDCOLOR

71529-ubucleaner.sh 에서 채택


큰 폴더 및 패키지 찾기

큰 폴더와 패키지를 찾는 데 도움이되는 몇 가지 도구 :

sudo apt-get install ncdu debian-goodies deborphan

sudo ncdu /    # lists all folders by size on the console (like the gui `baobab`)
dpigs -H       # shows large packages that you don't use
man deborphan  # finds packages that have no packages depending on them
deborphan --guess-all --libdevel | xargs apt-get -s purge

지방의

localepurge를 사용하여 시스템에서 사용하지 않는 언어를 설치 제거하십시오.

sudo apt-get install localepurge

오래된 스냅 이미지 제거

LANG=c snap list --all | awk '/disabled/{print $1, $3}' | \
    while read snapname revision; do \
        snap remove "$snapname" --revision="$revision"; \
    done

표백제

모든 요구에 맞는 훌륭한 그래픽 GUI 도구 :

sudo apt-get install bleachbit

맨 페이지 및 설명서 제거

또한 Ubuntu Wiki에 설명 된대로 맨 페이지 및 설명서를 제거 할 수 있습니다 .

원하는 필터를 지정하는 /etc/dpkg/dpkg.cfg.d/01_nodoc 파일을 작성하십시오. 예:

path-exclude /usr/share/doc/*
# if we need to keep copyright files for legal reasons:
# path-include /usr/share/doc/*/copyright
path-exclude /usr/share/man/*
path-exclude /usr/share/groff/*
path-exclude /usr/share/info/*
# lintian stuff is small, but really unnecessary
path-exclude /usr/share/lintian/*
path-exclude /usr/share/linda/*

project-config의 postinst에서 동일한 파일 및 디렉토리 세트를 제거하십시오. 예:

echo "Removing documentation..."
# if we need to keep copyright files for legal reasons:
# find /usr/share/doc -depth -type f ! -name copyright | xargs rm || true
# else:
find /usr/share/doc -depth -type f | xargs rm || true
rm -rf /usr/share/man/* /usr/share/groff/* /usr/share/info/* /usr/share/lintian/* /usr/share/linda/* /var/cache/man/*

귀하의 경우에 따라이
rubo77

이 스크립트를 실행하면서 실행중인 버전 번호와 동일한 커널을 제거하려고한다는 경고 메시지가 나타납니다.
Christophe De Troyer 2016 년

에 사용중인 현재 커널을 확인하십시오 uname -a. 이전에 apt-get ugrade를 수행하고 새 커널을 얻은 경우 사용중인 현재 커널이 최신 버전이 아닌 원인 일 수 있습니다. 이 스크립트를 시작하기 전에 리 푸트를하십시오
rubo77


3

'/ tmp'디렉토리는 반드시 필요한 경우가 아니면 수동으로 정리해서는 안됩니다 (예 : 닫힌 응용 프로그램 자체가 정리되지 않음).

'du'명령을 사용하여 공간이 채워지는 위치를 검색 할 수 있습니다. 일반적으로 관심있는 장소는 '/ var'안에 있습니다. 평범한 용의자 2 명을 '/ var / log'와 '/ var / cache'로 지정합니다. 백업 유틸리티를 설치하는 일부 사용자가 있지만 전체 디스크 공간을 채우기 위해 일주일 또는 한 달 이상 누적되는 '/ var / backup'에 GB의 증분 백업을 생성한다는 것을 결코 알지 못합니다.


감사합니다!. 당신이 말했듯이 / var / cache 아래에 MB가 차지하는 공간이 있으며 불필요한 파일을 제거하는 방법이 궁금합니다.
user3215

2

ubuntu-tweak 을 사용 하여 청소하십시오.

설치 앱으로 다운로드 된 모든 * .deb를 정리합니다.


KDE와 함께 작동하지 않음
rubo77

1

이미 많은 정크를 삭제했지만 디스크 공간이 정리되지 않은 경우 우분투를 재부팅하십시오. 또는 재부팅하지 않으려면 비슷한 질문 에서 같이 명령을 실행하십시오 .

sudo service rsyslog restart

0

서버에서 여유 공간을 더 확보해야 할 때이 명령을 사용합니다. 50MB보다 큰 모든 파일을 찾은 다음 "du -h"는 파일 크기를 기준으로 파이프 정렬 목록을 숫자 순으로 정렬 한 후 더 나은 파일 목록을 만들고 "sort -n"을 찾습니다.

find / -size +50M -type f -exec du -h {} \; | sort -n

1
ncdu /대신 사용하여 먼지를 제거하는 것이 좋습니다
rubo77

1
주어진 du -h, 또한 사용하십시오 sort -h.
muru

-3
uname -r 

(당신을보고)

apt-get remove linux-image 3.0.* 

(귀하의 이전 버전). 600MB의 여유 공간이 생겼습니다.


3
주의를 기울이지 않으면 이와 같은 명령을 사용하여 최신 커널 (또는 모든 커널)을 제거 할 수 있으므로 다운 보트됩니다.
ndemou
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.