驱动器不断充满。 你已经find了所有的备用和随机文件。 grep'd for coredump文件,甚至删除了一些不需要的备份…
你的下一步会是什么?
有问题的实际服务器有10GB的网站文件,操作系统不应该超过10GB,那么如何查找填满50GB(虚拟)驱动器的内容?
我发现ncdu( http://dev.yorhel.nl/ncdu )对此非常有帮助。
当然,还有更复杂的方法,但我记得的是
du - 最大深度= 1 -h /
现在把占用大部分空间的目录(du --max-depth=1 -h /yourdir)加深,直到find你的罪魁祸首。
如果你希望你的输出按大小sorting,而且不关心人们可读的格式,你也可以这样做: du --max-depth=1 /your_dir | sort -n du --max-depth=1 /your_dir | sort -n
我使用Gnome程序猴面包树。 你可以在你的桌面上运行它,并且可以通过SSH连接到服务器。 它显示了一个易于阅读的磁盘空间使用的graphics图。 它在Gnome下被安装为“Disk Usage Analyzer”
给gt5一个尝试。
df -k显示哪个fs是问题。 然后cd到顶级目录中,运行du -xk | sort -n | 尾巴-25这将显示前25个目录,sorting,为太阳9或更早,用一个dreplacex。
请注意,可以在写入文件的同时删除文件,因此它们在创build过程正在运行时使用磁盘空间,但没有文件名。
这使得它不能用通常的工具 – 你可以使用lsof来调查哪些进程有打开的文件。
如果您可以在系统上运行软件,则xdiskusage会以graphics方式显示哪些目录/文件正在占用您的空间。 非常有用。
我相信KDE包含类似的东西。
如果它是纯文本的,你不能安装额外的软件,那么du创意使用可能会让你在那里。
您可以使用以下命令查找占用太多空间的文件或文件夹。
例如,要显示当前文件夹中最大的前20个目录,请使用以下单行命令:
du -ah . | sort -rh | head -20
要么:
du -a . | sort -rn | head -20
对于当前目录中的前20个最大文件(recursion):
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),你需要安装从coreutilssort。 然后将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或big-files (例如在/home )。
这里是我拼凑在一起的东西,以追查我们的数据库服务器上的一些stream氓程序: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
它有点kludgey,不是很强大,但它的工作原理如下:
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: FS 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