当我在我的Amazon EC2服务器上运行df -h
时,这是输出:
[ec2-user@ip-XXXX ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 25G 25G 0 100% /
tmpfs 4.0G 0 4.0G 0% /dev/shm
由于某些原因,某些东西正在占用我的存储空间。
我试图找到所有大文件/文件夹 这就是我得到的回报:
[ec2-user@ip-XXXX ~]$ sudo du -a / | sort -n -r | head -n 10
993580 /
639296 /usr
237284 /usr/share
217908 /usr/lib
206884 /opt
150236 /opt/app
150232 /opt/app/current
150224 /opt/app/current/[deleted].com
113432 /usr/lib64
我怎样才能知道我的存储空间是什么?
答案 0 :(得分:70)
好吧,我认为它的一个(或多个)日志文件已经变得太大而需要删除/备份。我建议先把大文件放到后面。所以找到大于10 MB
的所有文件(10 MB是一个足够大的文件大小,你可以为1MB选择+ 1M)
sudo find / -type f -size +10M -exec ls -lh {} \;
现在您可以确定导致问题的因素并相应地处理它们。
至于你原来的du -a / | sort -n -r | head -n 10
命令,由于按大小排序,因此不起作用,因此,大文件的所有祖先目录都会向上移动到金字塔,而单个文件很可能是错过。
注意:在您找到的文件位置注意到类似的其他日志文件/二进制文件的出现应该非常简单,所以作为建议,请在包含原始文件的目录中执行cd
清理更多同类文件。您还可以使用该命令迭代下一个大小大于1MB
的文件,依此类推。
答案 1 :(得分:17)
如果你找不到任何巨大的文件,杀死一些进程可能会解决问题(这对我有用,请阅读完整答案以了解原因)
<强>早些时候:强>
/dev/xvda1 8256952 7837552 0 100% /
立即强>
/dev/xvda18256952 1062780 6774744 14% /
<强>原因:强>
如果对进程打开的文件执行rm <filename>
,它实际上不会删除该文件,并且进程仍然可以写入该文件。 find命令无法找到或删除这些ghost文件。使用此命令可以找出正在使用已删除文件的进程:
lsof +L1
重启机器或终止进程以释放文件。
答案 2 :(得分:9)
在/
,将du -hs *
键入root
:
$ sudo su -
cd /; du -hs *
您将看到所有文件夹的完整大小,并确定较大的文件夹。
答案 3 :(得分:5)
邮件通知消耗此空间
您可以输入
进行检查sudo find / -type f -size +1000M -exec ls -lh {} \;
它将显示1000MB以上的大文件夹
结果将有一个文件夹
/var/mail/username
您可以通过运行以下命令来释放该空间
> /var/mail/username
请注意,大于(&gt;)的符号不是提示,您必须使用它运行cmd。
现在通过
检查空间可用空间df -h
现在你有足够的可用空间,享受......:)
答案 4 :(得分:2)
ansh0l的答案是找到大文件的方法。但是,如果您想查看文件系统中每个目录占用多少空间,请cd到根目录,然后执行du -k --max-depth=
'。这将显示根目录中每个子目录占用的空间量。当您发现罪魁祸首时,请cd到该目录,然后再次运行相同的命令,然后重复,直到找到占用所有空间的文件。
答案 5 :(得分:0)
如果您对文件系统有任何快照,则使用情况不会在操作系统中显示。
因此,离开快照的时间越长,当前卷上消耗的磁盘就越多。如果删除快照,则重新启动丢失的磁盘容量将重新出现。