如何检查/ tmp中占用磁盘空间的内容?


8

我正在外部服务器上工作-只是在那里做一些Web-API。今天,当我想使用api php时,返回以下错误:

Unknown: write failed: No space left on device (28)

所以我发现tmp已满:

~# df -h /tmp
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       102G   97G     0 100% /

因此,我想我必须清除tmp中的一些垃圾-但首先,我想知道是什么导致了该问题,我的意思是什么在tmp中占用了这么多内存?也许某种程度上以某种方式淹没了tmp目录?我不是系统管理专家,我只是写web-api ...超过了tmp大小是否正常?也许只是不时发生?

命令结果:

du -sh /tmp/* | sort -h
0       /tmp/tmpEZIyDT
0       /tmp/unity_support_test.0
4.0K    /tmp/amazoncookie.txt
4.0K    /tmp/at-spi2
4.0K    /tmp/filewhHOLH
4.0K    /tmp/keyring-b3ZOTY
4.0K    /tmp/mc-domator
4.0K    /tmp/mc-root
4.0K    /tmp/pulse-2L9K88eMlGn7
4.0K    /tmp/pulse-PKdhtXMmr18n
4.0K    /tmp/ssh-thimUVhk2748
8.0K    /tmp/pulse-5N1YM8s2cT0i

奇怪-据我了解,tmp dir中的内容不多...也许其他东西占用了太多的磁盘空间-我该如何检查?

Answers:


9

第一个命令指示/ tmp实际上与/在同一文件系统上(即其他所有文件)。如果您的根分区已满,则可能是其他内容(例如/ var / log)占用了空间。

找到事情的一种体面的方法是去做

du -sc * .[^.]* | sort -n

查找哪些目录很大。然后,您可以继续cd进入较低的目录,然后重新运行命令以缩小范围。


1
/var/log/- 的内容进行快速检查-如果程序产生了千兆字节的不受监控的错误,则可以快速填充驱动器。
达斯Android

谢谢-这是查找隐藏文件的好主意-问题是某些用户主目录中的大文件“ .xsession-errors”-现在我才删除了它
user166241 2012年


2

检查您是否没有用完inode。

# df -i
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/sda3            1236992 1236992       0  100% /
tmpfs                1007716       1 1007715    1% /dev/shm
/dev/sda1              38456      45   38411    1% /boot

上面的评论仅供参考,以供有相同问题的人使用
-Zuzu

0

这就是我在bashrc中所拥有的。您将对什么是“大”有个好主意,然后可以从那里进行调查。当我们有喜欢使用系统/ tmp而不是共享tmp空间的用户时,请使用它。

function get_big_usage () {
    echo -e "\n"
    du -ks /tmp/* | sort -nr | head
    echo -e "\n"
    du -ks /var/* | sort -nr | head
    echo -e "\n"
    du -ks /home/* | sort -nr | head
}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.