Disk alanını nasıl boşaltabilirim?


181

Ubuntu bulut sunucum yalnızca 900 MB disk alanı bıraktı.

Dizini / tmp dosyasını boşaltacağım ve temizlenecek başka bir yer olup olmadığını merak ediyorum.


1
Bunu da deneyin: dpkg -l | grep ^ rc | kesilmiş -d '' -f3 | xargs sudo apt-get purge -y
crsuarezf


birçok durumda:sudo docker container prune -f && sudo docker image prune -f
smftr

Yanıtlar:


104
sudo apt-get autoremove

Bu, değiştirilen bir çok guff'u (eski çekirdekleri vb.) Temizleyebilir. Benzer bir şeyi Synaptic'te de yapabilirsiniz (yükleyin ve durum düğmesini ve ardından Otomatik çıkarılabilir seçeneğini seçin).


herhangi bir uygulamanın bağlı olduğu gerekli bir paketi kaldırırsa, çalışan uygulamaları etkilemeyecek mi?
kullanıcı3215,

1
Hayır. Autoremove artık paketler arar, yani açıkça kendiniz kurmamış olduğunuz (otomatik olarak işaretlenmiş paketler) ve bağımlılıkları olmayan paketler. aptitudeBunun yerine kullanırsanız, kullandıkça apt-gettemizlenebilir, ancak eski yüklemelerde güvenlik güncelleştirmeleri çıktıkça bir sal yüklü çekirdek toplamak oldukça yaygındır.
Oli

1
Yazdığım son yorumdaki yazım hatası. Yetim paketlerin “bağımlı olmayan” değil, bağımlı olmayan paketler olduğunu söylemek istedim. Bağımlılıkları olabilir ve yalnızca o yetim paket için oradalarsa, onlar da kaldırılır. Bazı zamanlar (gerçekten derinlemesine bağımlılık ağaçları ile) temizlenmesi bir kaç otoremes alabilir.
Oli

5
Yukarıdaki komut kesinlikle yararlı olsa da, o olacak değil belirtildiği gibi, eski çekirdeklerini çıkarıp. Bu, manuel olarak veya Ubuntu Tweak gibi ek araçlarla yapılmalıdır.
33'te codeling

1
Bu @nyarlathotep edecek ilk bakışta bir eski çekirdeklerini çıkararak düşünüyorum yapabilir çekirdek başlık dosyaları kaldırmak - Eski çekirdekleri kalır ancak (deneyin dpkg --get-selections | grep linux-image).
drevicko

211

Önceden yüklenmiş indirilmiş paketleri (.deb) silmek için (ve artık gerekli değil)

sudo apt-get clean

Artık indirilemeyen paketler için önbelleğinizdeki tüm saklanan arşivleri kaldırmak (bu nedenle artık depoda bulunmayan veya depoda daha yeni bir sürümü olan paketler).

sudo apt-get autoclean

Gereksiz paketleri kaldırmak için (Bir uygulamayı kaldırdıktan sonra artık ihtiyacınız olmayan paketler olabilir)

sudo apt-get autoremove

Eski çekirdek sürümlerini silmek için

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

Hangi çekirdek sürümünü kaldıracağınızı bilmiyorsanız

dpkg --get-selections | grep linux-image

Kaynak: Limpiando Ubuntu: programların ve programların (gerçekleştirilmesi) ( google çeviri )


1
Koşmak cleanbiraz boşluk bıraktı. Hemen sonra koştum autocleanve boş alanım 45 MB azaldı . cleanTekrar koşmak bu ekstra alanı serbest bıraktı.
Drew No:

8
Bana listeleme linux görüntüsünü kaldırdım, dpkg --get-selections | grep linux-imagebu da beni bir hataya neden oldu - ubuntu grubun önyükleme menüsünden kayboldu - bu cevap sorunu düzeltti - en son görüntüyü kaldırmamaya çalışın
laplasz

Linux görüntülerini kaldırırken tam olarak ne yapıyoruz?
Menelaos Bakopoulos

4
Tamam, bu zaten 100 kat (& da bu thread) yanıtlandı, ama bunu bulmak gerçekten , çünkü 160 defa garip upvoted edilecek: sudo apt-get clean Bu -simply- edecek paketleri paketleri tüm yerel kopyasını kaldırmak sen olabileceğini kurulum + yükseltme yaparken indirilir. Bu, / var / cache / apt / archives dizinini neredeyse boşaltacaktır. ... Yani çalıştırmak dahaki sefere sudo apt-get updatebunu olacaktır (zaten orada) her şeyi yeniden indirin. Sadece bir heads-up! .. :)
Nostromov

168
  • geçerli dizindeki en büyük 10 alt dizini göster.

    du -sk * | sort -nr | head -10
    
  • disk alanını görsel olarak nereye gittiğini görmek için filelight veya kDirStat kullanın

  • silmek için eski çekirdekleri olup olmadığını kontrol edin

    ls -lh /boot
    
  • temizlik paketleri

    sudo apt-get autoremove
    sudo apt-get autoclean
    

    Boyuta göre sıralanmış tüm kurulu paketlerin listesine bakınız. Büyük bir şey görürseniz ve kullanmazsanız - kaldırın

    dpkg-query -W --showformat='${Installed-Size} ${Package}\n' | sort -nr | less
    
  • kullanılmayan dil dosyalarını çevirilerle temizle (tonlarca tane var)

    sudo apt-get install localepurge
    
  • / var / tmp / içeriğini kontrol et

    du -sh /var/tmp/
    
  • ayrıca kontrol et

    man deborphan
    
  • Büyük dosyaları ara:

    find / -type f -size +1024k
    

    veya

    find / -size +50000  -exec ls -lahg {} \;
    
  • büyük kurulu paketler

    dpigs
    

bu paketin bir parçası: debian-goodies


4
ncdu
Önerdiğim

1
kDirStatdeğiştirildibaobab
rubo77

17

Eski çekirdekleri ve başlık dosyalarını silerek neredeyse 2 konser verdim:

kullanım

uname -r

Geçerli sürümünüzü kontrol etmek için

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

tüm eski çekirdekleri ve başlık dosyalarını görmek için

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

apt-get removeYapabileceğiniz böylece komut, destekleyen joker apt-get remove linux-image 3.0.* linux-headers-3.0.*aynı anda birçok kurtulmak için, örneğin.

Tabii ki mevcut çekirdeği çıkarmayın öldürmeyin emin olun! Ve belki bir veya iki eski versiyonunu saklayın, sadece durumda ... ama 10 veya 20 değil!


Joker karakterler hakkında biraz? Bunu kullanmadan önce tekrar kontrol ettim çünkü denedim ve istediğimden daha fazlasını aldım. Bir şekilde doldurduğum mümkün (belki de muhtemeldir) ama nasıl bilmiyorum ama yine de istediğimden daha fazla başlık kaybettim.
glaucon

Joker karakterler, küre yerine ziyade regex joker karakterleridir.
Chai T. Rex

13

Boş Çöpü Boşaltmayı unutma.

görüntü tanımını buraya girin


Veya komut satırından:

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

11

Ubuntu'daki her şeyi temizleyen BleachBit programını gerçekten tavsiye ediyorum.

Aşağıdaki komutu kullanarak kurun:

sudo apt-get install bleachbit


11

Kullanmadığınız büyük paketleri kaldırın

Bazı paketler oldukça büyük olabilir. Bunları bulmanın uygun bir yolu kullanmaktır dpigs. Varsayılan olarak yüklenmemiştir ancak debian-goodies( GitHub projesi ) içinde bulunabilir.

sudo apt-get install debian-goodies

Sonra:

$ 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

Birkaç seçenek var:

-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

Tüm eski çekirdek sürümlerini otomatik olarak kaldır

Dikkat: Çekirdeği yeni yükselttiyseniz, eski sürümleri silmeden önce yeniden başlatın!

Hangi çekirdeği kullandığınızı kontrol etmeyi unutmayın:

uname -r

Sonra kök olarak:

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

Bu komutu kullanarak gerekli çekirdekleri çıkarmamak için güvenli olan bu ipliği okuyun !


8

UFW kullanıyorsanız, günlük klasörünü kontrol edin. Makinelerimden birinde, UFW birkaç gün içinde 8Gb log üretiyordu.

Apt önbelleğini şu şekilde de boşaltabilirsiniz:

sudo apt-get clean

UFW log dosyalarını bulabildim mi?
Meraklı Çırak,

8

BleachBit ( sourceforge'da bulunur ) kullanmayı deneyin . Bu harika bir program. temel fikir, hızlı bir şekilde disk alanını boşalttığı ve sistemde gizlenmiş önemsiz bir çok şeyi kaldırdığıdır. Tanıdığı ve temizleyebileceği yaklaşık 70 uygulama var. Boş disk alanını "silmek" için kullanma yeteneği de vardır. Ben sadece Linux için pencerelerden CCleaner olarak düşünüyorum.


3
Sorunun özellikle sunucu araçlarını istediğini ve bunun bir masaüstü programı olduğunu (X ekranı gerektirdiğini) unutmayın.
Ryre

Şimdiye kadarki en iyi araç!
Roger

8

Çok sayıda günlük dosyasını da kontrol edin:

sudo du -h /var/log

Veya rubo77'nin de işaret ettiği gibi , NCurses disk kullanım aracını kullanabilirsiniz:

sudo ncdu /var/log

"günlük dosyalarının sayısı" değil dosya boyutunu listeleyen kullanışlı komut
dogmatic69

veya kullansudo ncdu /var/log
rubo77

@ rubo77, teşekkürler, bu gerçekten güzel bir araçtır!
Drew No:

4

İlk olarak, tüm büyük klasör ve dosyaları listelemek için bir araç var. Sadece başlatıcıya 'Baobab' yazın. Klasörleri ve dosyaları kaldırarak daha fazla alana ihtiyacınız kalmaz.


Sonra, çift dosyaları kaldırmak için bir program var. Program denir fslint. Girerek yükleyin

sudo apt-get install fslint

bir terminalde.

veya grafiksel

Fslint'i yazılım merkezi aracılığıyla kurun


Ayrıca, paket önbelleğini

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

Dördüncü adım eski Çekirdek girişlerini kaldırmaktır. Bunu Synaptic'i yükleyerek ve açarak yapabilirsiniz. Synaptic'te eski Çekirdek girişlerini (en yenisi hariç GRUB'da görüntülenen her Çekirdek girişi) arayın ve kaldırın.


İyi bir adım, uygulama önbelleğini kaldırmaktır. Bunu yükleyerek ve çalıştırarak yapın bleachbit:

sudo apt-get install bleachbit

veya grafiksel

Çamaşır suyu yazılım merkezi üzerinden yükleyin

Önemli: Silinen önbellek geri yüklenemez!


Son adım, dosya sistemini birleştirmektir. Bunun için aşağıdakileri yapın:

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

Bu komutlarla, e2fsprogs dosyasını indirip derlersiniz. (Siz veya topluluğun programı kurmak için daha iyi bir yolu varsa lütfen düzenleyin!)

Ayrıca git-coreyüklü olduğundan emin olun . Değilse, yürütün:

sudo apt-get install git-core 

veya Yazılım Merkezini kullanarak Git-core'u yazılım merkezi üzerinden kurun

Şimdi programı şu şekilde çalıştırabilirsiniz:

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 dosyasını istediğiniz dosya sistemi veya klasör / dosya ile değiştirin. Bir cihazı (HDD gibi) birleştirmek için kök haklarına ihtiyacınız olduğunu, ancak kendi dosyalarınız için olmadığını unutmayın.


Kaynak (Almanca): burada


Vay, eski linux-header ve linux-image versiyonlarını silmek, 10.04 kurulumumda bir buçuk kuruş serbest kaldı. fslint de harika bir keşif. Teşekkürler.
braddock

Baobab yerine, büyük klasör ve dosyaları bulmak için ncdu komut satırı aracını da kullanabilirsiniz:sudo apt-get install ncdu
rubo77 5

4

temizleyici komut dosyası

Bu komut dosyası konsoldaki en büyük parçaları çalıştırır:

  • Temiz apt cache
  • Kaldırma .deb paketlerinden kalan yapılandırma dosyalarını kaldırın ( --purgeanahtarı kullanmazsanız olur apt-get)
  • Kullanmakta olduğunuz hariç her çekirdeği çıkarın
  • Her kullanıcının çöp kutusunu boşaltın (root dahil)

bu içeriğe sahip bir dosya oluşturun ve yürütülebilir haklarını verin:

#!/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'den uyarlanmıştır


büyük klasörler ve paketler bulun

Büyük klasörler ve paketler bulmanıza yardımcı olacak bazı araçlar:

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

Sisteminizde kullanılmayan dilleri kaldırmak için localepurge kullanın:

sudo apt-get install localepurge

eski anlık görüntüleri kaldırın

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

BleachBit

Tüm ihtiyaçlara uyan harika bir grafik GUI aracı:

sudo apt-get install bleachbit

man sayfalarını ve belgeleri kaldır

Ek olarak, Ubuntu Wiki'de açıklandığı şekilde man sayfalarını ve dokümantasyonu kaldırabilirsiniz :

İstenen filtreleri belirten bir /etc/dpkg/dpkg.cfg.d/01_nodoc dosyası oluşturun. Örnek:

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's postinst dosyasında aynı dosya ve dizin kümesini kaldırın. Örnek:

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/*


Bu betiği çalıştırarak çalıştığım sürüm numarasıyla bir çekirdeği çıkarmak üzere olduğumu belirten bir uyarı aldım.
Christophe De Troyer

Kullanmakta olduğunuz çekirdeği kontrol edin uname -a. Daha önce bir apt-get ugrade yaptınız ve yeni bir çekirdek aldıysanız, kullandığınız mevcut kurnanın kurulu en yeni olmaması nedeni bu olabilir mi? Bu betiğe başlamadan önce bir repoot yapın
rubo77


3

'/ Tmp' dizini, kesinlikle gerekmedikçe asla manuel olarak temizlenmemelidir (örn: kapalı bir uygulama kendiliğinden temizlenmedi).

'Du' komutunu kullanarak boşluğun nerede dolduğunu bulabilirsiniz; genellikle ilgilenilen yerler '/ var' içindedir. İki olağan şüpheliyi adlandırmak için '/ var / log' ve '/ var / cache'. Her ne kadar bir yedekleme yardımcı programı yükleyen ve bir hafta veya ay boyunca tüm disk alanını doldurmak için biriken '/ var / backup' altında GB'lık artımlı yedeklemeler oluşturduğunu asla anlamadığım bazı kullanıcılarım olmasına rağmen.


Teşekkür ederim!. Söylediğiniz gibi / var / cache altında MB'lerle dolu ve gereksiz dosyaların nasıl kaldırılacağını merak ediyorum.
user3215 11:10


1

Zaten çok önemsiz silinmiş ancak disk alanı temizlenmiş görünmüyorsa, sadece ubuntu yeniden başlatın. Ya da yeniden başlatmak istemiyorsanız, sadece benzer sorudaki gibi komutu çalıştırın .

sudo service rsyslog restart

0

Sunucularda daha fazla boş alana ihtiyaç duyduğumda bu komutu kullanıyorum. 50 MB'tan sonra tüm dosyaları daha büyük bulur ve "du -h" daha iyi dosya listesi yapar ve "sort -n" ifadesinden sonra, boru dosya boyutuna göre sıralanır.

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

1
Bunun ncdu /yerine toz kullanmaktan daha iyi
olursunuz

1
Verilen du -h, sort -haynı zamanda kullanın .
muru

-3
uname -r 

(seninkini görmek için)

apt-get remove linux-image 3.0.* 

(sizin eski sürümleriniz). Bana 600 MB boş alan verdi.


3
Ancak, bunun gibi komutlarda, dikkatli değilseniz en son çekirdeği (hatta tüm çekirdeği) kaldırabilirsiniz.
Ndemou
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.