我的Ubuntu云服务器只剩下900MB磁盘空间。

我只是清空目录/ tmp,并想知道是否还有其他要清除的位置。

评论

也尝试以下方法:dpkg -l | grep ^ rc |切-d''-f3 | xargs sudo apt-get清除-y

如果您使用的是docker:docs.docker.com/config/pruning

在许多情况下:sudo docker容器prune -f && sudo docker image prune -f

@crsuarezf想要对此做些解释吗?

#1 楼

sudo apt-get autoremove


可以清除掉许多已更换的污垢(旧内核等)。您可以在Synaptic中执行类似操作(将其加载并选择状态按钮,然后选择“自动删除”选项)。

评论


它是否不会影响正在运行的应用程序,例如是否删除了任何应用程序所依赖的必需软件包?

–user3215
2010-10-11 13:54

不会。Autoremove会查找孤立的软件包,也就是说,您没有明确安装自己的软件包(标记为auto的软件包)并且没有依赖性。如果您使用aptitude而不是apt-get,它可以随您进行清理,但是在较旧的安装中,随着安全更新的发布,通常会收集大量已安装的内核。

–奥利♦
2010-10-11 14:03

我最近的评论中有错字。我的意思是说孤立的软件包是不依赖的软件包,而不是“没有依赖”的软件包。它们很可能具有依赖关系,如果它们仅在那个孤立的程序包中存在,它们也将被删除。有时(使用非常深的依赖树)可能需要几个自动删除才能清除。

–奥利♦
2010-10-11 14:28

尽管上面的命令肯定有用,但是如上所述,它不会删除旧内核。这必须手动完成或使用其他工具(如Ubuntu Tweak)完成。

–编码
13年8月17日在8:33

@nyarlathotep它将删除内核头文件,乍一看可能会使人认为它正在删除旧内核-但是仍然保留旧内核(尝试dpkg --get-selections | grep linux-image)。

– drevicko
2013年1月1日23:55

#2 楼

删除已安装(不再需要)的已下载软件包(.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)(谷歌翻译)

评论


运行清理释放了相当多的空间。此后,我立即运行自动清理,我的可用空间减少了45MB。再次运行干净释放了此额外空间。

–德鲁·诺克斯(Drew Noakes)
13年3月11日,0:59



我删除了dpkg --get-selections |列出的所有Linux映像。 grep linux-image导致我启动错误-ubuntu从grub启动菜单中消失了-这个答案解决了问题-尝试不删除最新的映像

–laplasz
2013年12月25日18:00



删除Linux映像时,我们到底在做什么?

–最佳素数
2014年4月23日下午13:40

好的,这已经被回答了100次(在这个线程中也是&),但是我被投票160次真的很奇怪,因为:sudo apt-get clean它会-简单地-删除软件包的所有本地副本安装和升级时可能已下载的软件包。这几乎将/ var / cache / apt / archives目录清空。 ...因此,下次您运行sudo apt-get update时,它将重新下载所有内容(已经存在)。单挑!.. :)

– Nostromov
17年5月18日在21:43



#3 楼



显示当前目录中的前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

评论


要查找大文件,我建议使用ncdu,它提供了一种快速的方法来查看正在使用磁盘空间的目录

–rubo77
15年1月22日在5:18

kDirStat替换为猴面包树

–rubo77
15年1月22日在6:23

#4 楼

我只是通过删除旧的内核和头文件释放了将近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.*,例如一次删除许多。

请确保您不会杀死删除当前内核!也许保留一个或两个旧版本,以防万一...但不要保留10或20个!

评论


关于通配符?在使用它之前,我会仔细检查一下,因为我尝试了一下,并且得到了比我想要的更多的东西。我有可能(也许甚至有可能)以某种方式进行填充,但是我不知道如何,但是我丢失了比我想要的标题更多的标题。

– glaucon
16-10-25在21:28

通配符是正则表达式通配符,而不是glob。

–柴T.雷克斯
18-09-24在15:04

#5 楼

不要忘记清空垃圾箱。




或者从命令行:

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


#6 楼

我真的建议您使用程序BleachBit,该程序可在Ubuntu上清除所有内容。

使用以下命令安装它:

sudo apt-get install bleachbit

#7 楼

自动删除所有旧内核版本


注意:如果您刚刚升级了内核,请在删除旧版本之前重新启动!


记住检查您正在使用的内核类型:

uname -r


然后以root身份:

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


将该线程读取为请确保不要使用此命令删除所需的内核!

#8 楼

卸载不使用的大型软件包

某些软件包可能很大。查找这些内容的简便方法是使用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.


#9 楼

还要检查大量日志文件:

sudo du -h /var/log


或者如rubo77所指出的那样,您可以使用NCurses磁盘使用工具:

sudo ncdu /var/log


评论


方便的命令,其中列出了文件大小,而不是“日志文件数”

– Dogmatic69
2014年1月18日在20:42

或使用sudo ncdu / var / log

–rubo77
15年1月22日在5:20



@ rubo77,谢谢,这是一个非常好的工具!

–德鲁·诺克斯(Drew Noakes)
15年1月22日在12:42

#10 楼

如果使用UFW,请检查日志文件夹。在我的一台计算机上,UFW在几天内生成了8Gb日志。

还可以使用以下方法清空apt缓存:

sudo apt-get clean


评论


我可以找到UfW日志文件吗?

–好奇的学徒
2012年5月8日13:51

#11 楼

尝试使用BleachBit(位于sourceforge)。这是一个很棒的程序。
的基本思想是,它可以快速释放磁盘空间并清除系统中隐藏的许多垃圾。它可以识别和擦拭大约70个应用程序。还可以使用它“擦除”可用磁盘空间。我将其视为仅适用于Linux的Windows中的CCleaner。

评论


请注意,该问题专门询问服务器工具,并且这是一个桌面程序(需要X显示)。

–瑞尔
2015年5月6日14:59

到目前为止最好的工具!

–罗杰
17 Mar 4 '17 at 16:41

#12 楼

清洁程序脚本

此脚本将在控制台上执行最大的块:


清洁apt缓存
删除卸载的.deb程序包中剩下的配置文件(如果您不将--purge开关与apt-get一起使用,则会发生这种情况)
删除除您使用的内核之外的所有内核
清空每个用户(包括root)的垃圾信息

创建一个具有此内容的文件并赋予其可执行权限:

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

OLDCONF=$(dpkg -l|grep "^rc"|awk '{print }')
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 }'|grep -E $LINUXPKG |grep -vE $METALINUXPKG|grep -v $CURKERNEL)
YELLOW="3[1;33m"; RED="3[0;31m"; ENDCOLOR="3[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

>使用localepurge卸载系统中未使用的语言:

sudo apt-get install localepurge



删除旧的快照映像

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



bleachbit

一个满足所有需求的出色图形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/*


在项目配置的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/*


评论


根据您的情况,您可以在此脚本中找到更多选项:github.com/box-cutter/debian-vm/blob/master/script/minimize.sh

–rubo77
2015年2月3日在13:20



我在执行此脚本时收到警告,即将删除与我运行的版本号相同的内核。

–克里斯托弗·德·特罗耶(Christophe De Troyer)
17年3月13日在13:01

用uname -a检查当前使用的内核。如果您之前刚刚执行过apt-get ugrade并获得了新内核,则可能是由于您使用的当前内核不是已安装的最新内核?然后重新启动此脚本

–rubo77
17 Mar 14 '17:25



minimal.sh脚本已移动:github.com/boxcutter/debian/blob/master/script/minimize.sh

–rubo77
19年4月4日在2:51

#13 楼

首先,有一个列出所有大文件夹和文件的工具。只需在启动器中输入“ Baobab”即可。通过删除文件夹和文件,您不需要更多的空间。


然后,有一个用于删除重复文件的程序。该程序称为fslint
通过在终端中输入

sudo apt-get install 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 


,或使用软件中心

现在,您可以使用以下程序运行程序:

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)进行碎片整理,您需要root特权,但不适用于您自己的文件。


来源(德语):此处

评论


哇,删除旧的linux-header和linux-image版本可以在我的10.04安装中释放大约一个半小时。 fslint也是一个很好的发现。谢谢。

–braddock
2012年7月15日23:13

除了baobab之外,您还可以使用命令行工具ncdu查找大文件夹和文件:sudo apt-get install ncdu

–rubo77
15年1月22日在5:19

#14 楼

除非绝对必要,否则永远不要手动清理'/ tmp'目录(即,已关闭的应用程序自身不会清理)。

您可以使用'du'命令;通常,名胜古迹位于“ / var”内部。列举两个通常的可疑对象“ / var / log”和“ / var / cache”。尽管我有一些安装了备份实用程序的用户,却从未意识到它会在'/ var / backup'中创建GB的增量备份,这些增量备份会在一周或一个月内建立起来以填满整个磁盘空间。

评论


谢谢!。如您所说,我在/ var / cache下的MB中占据了一些空间,想知道如何删除不必要的文件。

–user3215
2010-10-11 14:13

#15 楼

使用ubuntu-tweak进行清理。

清理所有下载到安装应用程序的* .deb。

评论


不适用于KDE

–rubo77
13-10-29在8:10

#16 楼

如果您已经删除了很多垃圾但磁盘空间似乎并未清除,请重新启动ubuntu。或者,如果您不想重新启动,只需运行类似问题中的命令即可。

sudo service rsyslog restart


#17 楼

当我需要在服务器上腾出更多可用空间时,请使用此命令。它发现所有大于50 MB的文件,“ du -h”使文件列表更好,而“ pipe -make”列表按文件大小按数字排序后,则“ sort -n”更好。

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


评论


您最好使用ncdu /代替灰尘

–rubo77
15年2月3日,13:34

给定du -h,也请使用sort -h。

–muru
2015年2月3日,13:56

#18 楼

您可以尝试清除缓存和错误报告,当我第一次尝试时有大约5个这样的垃圾。我使用stacer。您也可以手动进行操作。

安装stacer sudo apt install stacer
< br stacer是一个gui应用程序,因此您会知道该怎么做。
如果您不这样做


启动stacer,然后单击系统清洁程序(上面有扫帚图标)单击全选,然后单击放大镜,选择要删除的内容,然后再次单击扫帚图标