如何检查 /tmp 中的磁盘空间?

use*_*241 8 linux

我在外部服务器上工作 - 只是在那里做一些 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% /
Run Code Online (Sandbox Code Playgroud)

所以我想我必须清除 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
Run Code Online (Sandbox Code Playgroud)

奇怪 - 因为我在 tmp 目录中理解的东西不多......也许其他东西占用了太多的磁盘空间 - 我如何检查它?

Ala*_*tko 11

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

找东西的一个体面的方法是做

du -sc * .[^.]* | sort -n
Run Code Online (Sandbox Code Playgroud)

找到什么目录是大的。然后您可以继续 cd 进入较低的目录并重新运行该命令以缩小范围。


小智 5

检查是否没有用完 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
Run Code Online (Sandbox Code Playgroud)