AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 43296
Accepted
Gareth
Gareth
Asked: 2009-07-21 16:54:00 +0800 CST2009-07-21 16:54:00 +0800 CST 2009-07-21 16:54:00 +0800 CST

如何找到哪些文件占用了 Linux 网络服务器上 80% 的空间?

  • 772

驱动器不断加满。您已经找到了所有可以找到的备用和随机文件。grep'd 用于 coredump 文件,甚至删除了一些不需要的备份......

你的下一步行动是什么。

有问题的实际服务器有 10GB 的网站文件,操作系统不应超过 10GB,那么您如何追踪填充 50GB(虚拟)驱动器的内容?

linux disk-space-utilization command-line-interface capacity
  • 10 10 个回答
  • 22955 Views

10 个回答

  • Voted
  1. Marie Fischer
    2009-07-21T17:03:27+08:002009-07-21T17:03:27+08:00

    当然还有更复杂的方法,但我记得的一种是

    du --max-depth=1 -h /

    现在取出占用空间最多的目录(du --max-depth=1 -h /yourdir)并深入了解,直到找到罪魁祸首。
    如果希望您的输出按大小排序并且不关心人类可读的格式,您也可以这样做du --max-depth=1 /your_dir | sort -n

    • 25
  2. Best Answer
    Scott
    2009-07-22T06:49:41+08:002009-07-22T06:49:41+08:00

    我发现 ncdu ( http://dev.yorhel.nl/ncdu ) 对此非常有帮助。

    • 12
  3. Josh
    2009-07-21T19:40:06+08:002009-07-21T19:40:06+08:00

    我使用 Gnome 程序猴面包树。您可以在桌面上运行它,并且可以通过 SSH 连接到服务器。它显示了一个易于阅读的磁盘空间使用图形地图。它作为“磁盘使用分析器”安装在 Gnome 下

    • 5
  4. Dennis Williamson
    2009-07-21T18:47:43+08:002009-07-21T18:47:43+08:00

    试试gt5 。

    • 3
  5. Ronald Pottol
    2009-07-21T17:19:45+08:002009-07-21T17:19:45+08:00

    df -k 显示哪些 fs 是问题所在。然后 cd 到它的顶层目录并运行 du -xk | 排序-n | tail -25 这将显示排序的前 25 个目录,对于 sun 9 或更早,将 x 替换为 d。

    • 2
  6. Thorbjørn Ravn Andersen
    2009-07-21T23:52:33+08:002009-07-21T23:52:33+08:00

    请注意,文件可以在仍被写入时被删除,因此它们在创建过程运行时使用磁盘空间,但没有文件名。

    这使得使用常用工具无法找到它 - 您可以使用 lsof 来调查哪些进程具有打开的文件。

    • 1
  7. sleske
    2009-07-21T17:03:38+08:002009-07-21T17:03:38+08:00

    如果您可以在系统上运行软件,那么xdiskusage将以图形方式向您显示哪些目录/文件正在占用您的空间。非常有用。

    我相信 KDE 包含类似的东西。

    如果它是纯文本的并且您无法安装额外的软件,那么创造性地使用du可能也会让您到达那里。

    • 0
  8. Greeblesnort
    2009-07-21T19:23:07+08:002009-07-21T19:23:07+08:00

    这是我拼凑起来的东西,以追踪我们数据库服务器上的一些流氓进程:rabbitfinder

    #!/bin/sh
    tree -s -f > /tmp/out1 && sleep 5 && tree -s -f > /tmp/out2; diff /tmp/out1 /tmp/out2 | egrep "\|--" | awk -F[ '{print $2}' | awk -F] '{print $2 }' | sort | uniq | xargs fuser -f | xargs ps -lFp
    

    它有点笨拙而且不是很健壮,但它是这样工作的:

    1. 生成当前目录的递归树列表
    2. 等待 5 秒
    3. 生成另一个列表
    4. 比较两个输出
    5. 融合已更改大小的文件和
    6. ps -lFp将显示文件是哪个进程拥有它们

      user@poseidon:~$ tree -s -f > /tmp/out1 && sleep 5 && tree -s -f > /tmp/out2; diff /tmp/out1 /tmp/out2 | egrep "\|--" | awk -F[ '{print $2}' | awk -F] '{print $2 }' | sort | uniq | xargs fuser -f | xargs ps -lFp
      ./tmp/output:       
      F S UID        PID  PPID  C PRI  NI ADDR SZ WCHAN    RSS PSR STIME TTY          TIME CMD
      0 R 1000     14310 14275 23  80   0 -  1072 -        748   1 22:19 pts/2    00:00:06 dd if /dev/zero of ./output bs 1024 count 10000000
      
    • 0
  9. ASEveryWhere Technologies
    2016-02-22T22:00:17+08:002016-02-22T22:00:17+08:00
    1. cd 到 web 服务器的主目录(apache 的主目录)
    2. 运行命令“du -a |head -30|sort -nr”
    3. 它将为您提供 30 个最大的磁盘消耗文件/目录
    4. 您可以找到它们并删除(如果没有用)
    • 0
  10. kenorb
    2016-12-24T08:54:10+08:002016-12-24T08:54:10+08:00

    您可以使用以下命令查找占用过多空间的文件或文件夹。

    例如,要显示当前文件夹中最大的前 20 个目录,请使用以下单行:

    du -ah . | sort -rh | head -20
    

    或者:

    du -a . | sort -rn | head -20
    

    对于当前目录中最大的 20 个文件(递归):

    ls -1Rs | sed -e "s/^ *//" | grep "^[0-9]" | sort -nr | head -n20
    

    或具有人类可读尺寸:

    ls -1Rhs | sed -e "s/^ *//" | grep "^[0-9]" | sort -hr | head -n20
    

    要在 OSX/BSD 上正常工作的第二个命令(sort没有-h),您需要sort从coreutils. 然后将 bin 文件夹添加到您的PATH.

    您可以将这些命令定义为别名(例如添加到您的rc文件中,例如.bash_profile):

    alias big='du -ah . | sort -rh | head -20'
    alias big-files='ls -1Rhs | sed -e "s/^ *//" | grep "^[0-9]" | sort -hr | head -n20'
    

    然后运行big或big-files在您认为发生的文件夹内(例如 in /home)。

    • 0

相关问题

  • 多操作系统环境的首选电子邮件客户端

  • 你最喜欢的 Linux 发行版是什么?[关闭]

  • 更改 PHP 的默认配置设置?

  • 保护新的 Ubuntu 服务器 [关闭]

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve