为什么我的 /tmp 中有 8GB 的​​文件?

为什么我的 /tmp 中有 8GB 的​​文件?

我刚刚收到一条通知,说我只剩下少量的磁盘空间:

磁盘空间不足

于是我打开猴面包树进行研究,发现了这一点:

猴面包树

事实证明,我的 /tmp 文件夹中充满了类似这样的文件tmpxxxxxx。在我看来,这些文件就像是 python 脚本创建的临时文件。

我怎样才能找出导致此问题的程序?

时间戳大约在我第一次登录时和现在之间变化。它们是二进制文件,文件管理器将它们视为“未知”类型。

lsof /tmp/tmp*什么也没给出。

当我运行时 ls -l /tmp/tmp*,最后 10 个条目是:

-rw------- 1 david  david  21195909 2011-08-29 21:53 /tmp/tmpzTXYNT
-rw------- 1 david  david      2381 2011-08-29 15:53 /tmp/tmpZuKqAW
-rw------- 1 david  david   6987663 2011-08-29 18:38 /tmp/tmpZuSEp5
-rw------- 1 david  david   1789626 2011-08-29 20:33 /tmp/tmpzv3MST
-rw------- 1 david  david  19266899 2011-08-29 22:15 /tmp/tmpZxMCU5
-rw------- 1 david  david  21197879 2011-08-29 20:52 /tmp/tmpzxSXv2
-rw------- 1 david  david     65960 2011-08-29 18:13 /tmp/tmpZyA6aJ
-rw------- 1 david  david    352529 2011-08-29 22:47 /tmp/tmpzz3jPd
-rw------- 1 david  david     13869 2011-08-29 22:25 /tmp/tmp_ZZ3ZA
-rw------- 1 david  david  17277993 2011-08-29 20:53 /tmp/tmpZzSmnL

答案1

那么如何使用这个inotify-tools包呢?

您可以安装它并尝试以下操作:

$ cd /tmp
$ lsof `inotifywait -e create --format "/tmp/%f" .`

如果你在另一个终端创建一个文件,例如:

$ cat > /tmp/aa

输出lsof可能会显示类似

COMMAND  PID    USER   FD   TYPE DEVICE SIZE/OFF   NODE NAME
cat     3576 marcelo    1w   REG    8,1        0 274376 /tmp/aa

答案2

我刚刚再次尝试了 lsof 命令,得到了以下结果:

COMMAND     PID  USER   FD   TYPE DEVICE SIZE/OFF    NODE NAME
ubuntuone 21086 david   49r   REG    8,4  1790938 1473680 /tmp/tmpYemldG
ubuntuone 21086 david   50r   REG    8,4    12903 1473668 /tmp/tmpzZZV7s
ubuntuone 21086 david   52r   REG    8,4    21702 1473689 /tmp/tmpXrw6n8
ubuntuone 21086 david   53r   REG    8,4    25645 1473683 /tmp/tmp5jFc1h
ubuntuone 21086 david   54r   REG    8,4   275049 1473685 /tmp/tmphrw2g3
ubuntuone 21086 david   55r   REG    8,4   501273 1473684 /tmp/tmpbu2ET8
ubuntuone 21086 david   56r   REG    8,4  7027579 1473687 /tmp/tmpSY_QO8
ubuntuone 21086 david   57r   REG    8,4 19404032 1473686 /tmp/tmpokUSil
ubuntuone 21086 david   58r   REG    8,4 17277993 1473688 /tmp/tmpqjYsMG
ubuntuone 21086 david   59r   REG    8,4 21198443 1473682 /tmp/tmp1QGY_A

因此,Ubuntu One 似乎是罪魁祸首。出于某种原因,它似乎无法自行清理。我通过终止 ubuntuone-syncdaemon 然后运行 ​​来“解决”了这个问题sudo rm -f /tmp/tmp*

答案3

Ubuntu One 存在设计缺陷,它会复制 /tmp 中的数据文件。我指的是 GB 的数据填满了 /tmp,我禁用了它,然后我的磁盘空间就恢复了(重启后)

Ubuntu One 的基本缺陷是在更新文件时没有实现基于存储库的锁定以及进行异地同步,其余一切都是 Ubuntu One 开发人员为糟糕的设计找的借口。

我的建议是禁用它。

每周一次/当您添加新的数据启用时,允许更新,然后再次禁用它并重新启动。

糟糕的方法,但却是唯一不会丢失磁盘空间的方法

相关内容