首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >磁盘大小管理

磁盘大小管理
EN

Unix & Linux用户
提问于 2012-10-29 17:36:13
回答 3查看 1.4K关注 0票数 3

我使用的是Fedora 16,我的/dev/sda2 2安装在/ (root)上,大约有50G,100%被填充:

代码语言:javascript
复制
[foampile@~ 13:13:39]> df
Filesystem     1K-blocks     Used Available Use% Mounted on
rootfs          51606140 49025452         0 100% /
devtmpfs         2988452        0   2988452   0% /dev
tmpfs            2999424       96   2999328   1% /dev/shm
/dev/sda2       51606140 49025452         0 100% /
tmpfs            2999424    51992   2947432   2% /run
tmpfs            2999424        0   2999424   0% /sys/fs/cgroup
tmpfs            2999424        0   2999424   0% /media
/dev/sda1          99150    79569     14461  85% /boot
/dev/sda5      247972844 10782056 224594412   5% /home

Q1:是否有一个带有ls的命令或选项,它将递归地列出目录下的所有文件,并按大小对它们进行排序?我想看看哪些文件/脏文件占据了这个设备。

Q2:我的/home相对来说是未使用的。有没有办法重新划分磁盘并将一些磁盘空间从/dev/sda2 5 (/home)切换到/dev/sda2 2?

谢谢

EN

回答 3

Unix & Linux用户

回答已采纳

发布于 2012-10-29 18:26:35

Q1。试试像sudo du -a -m -x | sort -k1n -r | head -n40这样的东西。指向-adu标志是递归的。-m标志以MB显示大小。-x停留在一个文件系统上。这将同时列出文件和目录,并且只有40个最大的(因为-n40选项到head)。一些du实现有一个-t SIZE选项,只能显示大小超过大小的条目。

要只列出文件,您可以尝试类似于:find / -xdev -type f -size +1M -ls。这将只列出与/相同大小超过1MB的文件系统上的文件。

Q2。几乎可以肯定。但是您应该单独询问这个问题,或者在"linux“和”重新分区“这样的关键字上进行搜索(这里或其他地方),因为我经常讨论它。以下是这个网站上的一些以前的问题:

票数 3
EN

Unix & Linux用户

发布于 2012-10-29 21:13:32

对于rootfs来说,50 is是很大的,最好检查一下文件系统为什么被填充,而不是盲目地扩展它。如果您只是扩展根文件系统,那么它很可能在短时间内再次填满。我希望填充/var、/var/log或/tmp。

根据我的经验,这通常是由大量相对较小的(Ish)文件集合造成的,因此最好以手动和结构化的方式进行。下面的方法将使您既可以找到一个大文件,也可以找到一个包含大量小文件的目录。

代码语言:javascript
复制
sudo -i
cd /
du -sxh * | sort -h
  • du列出磁盘使用情况
    • 人类可读格式的-h打印大小(例如,1K 234 m2G)
    • -s只显示每个参数的总数。
    • 用于跳过不同文件系统上目录的-x

  • sort -h使最大的目录出现在最后。

现在研究最后(几个)目录:

代码语言:javascript
复制
cd the_large_diretory

再重复

代码语言:javascript
复制
du -sxh * | sort -h

直到找到包含大文件的目录(S)。最后,您可以使用以下方法检查目录的内容:

代码语言:javascript
复制
cd the_large_directory
ls -hlrS
  • ls列出目录的内容
    • -h以“人类可读的形式”显示文件大小
    • -l显示文件详细信息
    • -r以恢复排序(最后最大的文件)
    • -S按文件大小进行排序

Notes

  • 如果系统上的任何命令dusort不支持-h标志,只需使用du -sxk * | sort -n即可。输出也是类似的,只是由于长的数字,很难读懂。
  • 如果系统上的ls不支持-h标志,只需跳过它,它就不是必需的,而是提高了可读性。
  • 如果系统上的ls不支持-S标志,则将输出输送到sort -nk5
票数 4
EN

Unix & Linux用户

发布于 2012-10-29 18:30:26

A1:ls -larS / | head -50

A2:是的,但是在调整/home大小时要小心,一定要强制磁盘检查和备份

代码语言:javascript
复制
e2fsck -f /home

然后

代码语言:javascript
复制
resize2fs /home 50G
票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/53230

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档