在 tmp 目录中每秒创建然后删除的文件

adr*_*rhc 13 tmp files

我错误地注意到在 /tmp 目录中不断创建一些文件然后立即删除。使用一系列ls -l /tmp我设法捕获创建的文件:

-rw------- 1 root root       0 Apr  2 19:37  YlOmPA069G
-rw------- 1 root root       0 Apr  2 19:37  l74jZzbcs6
Run Code Online (Sandbox Code Playgroud)

或另一个例子:

-rw------- 1 root root       0 Apr  2 19:44  AwVhWakvQ_
-rw------- 1 root root       0 Apr  2 19:44  RpRGl__cIM
-rw------- 1 root root       0 Apr  2 19:44  S0e72nkpBl
-rw------- 1 root root       0 Apr  2 19:44  emxIQQMSy2
Run Code Online (Sandbox Code Playgroud)

这是关于带有 4.18.0-16-generic 的 Ubuntu 18.10。这是一个几乎全新的安装:我添加了一些服务器软件(nginx、mysql、php7.2-fpm),但即使关闭了这些软件,问题仍然存在。

创建的文件是什么,为什么?我将如何阻止这种行为?SSD上非常不受欢迎

谢谢!

更新

问题是关于何时在 RAM 中没有 /tmp (没有tmpfs)。
有罪的软件是x2goserver.service否则必须有一个。

Col*_*ing 17

我建议安装并运行 fnotifystat 来检测创建这些文件的进程:

sudo apt-get install fnotifystat
sudo fnotifystat -i /tmp
Run Code Online (Sandbox Code Playgroud)

您将看到正在执行打开/关闭/读/写活动的进程,如下所示:

Total   Open  Close   Read  Write   PID  Process         Pathname
  3.0    1.0    1.0    0.0    1.0   5748 firefox         /tmp/cubeb-shm-5748-input (deleted)
  2.0    0.0    1.0    0.0    1.0  18135 firefox         /tmp/cubeb-shm-5748-output (deleted)
  1.0    1.0    0.0    0.0    0.0   5748 firefox         /tmp/cubeb-shm-5748-output (deleted)
Run Code Online (Sandbox Code Playgroud)

  • 后记:我是这个工具的作者:https://kernel.ubuntu.com/~cking/fnotifystat/ (3认同)

ear*_*Lon 8

确定哪个程序/进程正在接触文件

您可以使用诸如lsof确定哪些进程和二进制文件正在访问/打开哪些文件等工具。如果文件频繁更改,这可能会变得很麻烦,因此您可以设置手表来通知您:

$ sudo fnotifystat -i /tmp
Run Code Online (Sandbox Code Playgroud)

有时,简单地查看用户或组所有者会给您一个很好的提示(即:)ls -lsha


放入/tmpRAM 而不是磁盘

如果您愿意,可以将您的/tmp目录放入 RAM。您必须根据可用 RAM 以及读/写的大小和频率来确定这是否是明智之举。

$ sudo vim /etc/fstab

...
# tmpfs in RAM
tmpfs         /tmp         tmpfs         defaults,noatime,mode=1777      0 0
...
Run Code Online (Sandbox Code Playgroud)
$ sudo mount /tmp
$ mount | grep tmp # Check /tmp is in RAM
tmpfs on /tmp type tmpfs (rw,noatime)
Run Code Online (Sandbox Code Playgroud)

如果您有足够的 RAM,这对于您的 SSD 的使用寿命以及系统的速度来说都被认为是一件非常好的事情。如果您调整tmpreaper(有时tmpwatch)更积极,您甚至可以使用较少的 RAM 来完成此操作。


Jör*_*tag 6

在 SSD 上非常不受欢迎

你用标记了你的问题,所以我不太清楚这与 SSD 有什么关系。Tmpfs 是一个内存中(或更准确地说,块缓存中)文件系统,因此它永远不会命中物理磁盘。

此外,即使您的/tmp文件系统有物理后备存储,除非您的系统只有几 KB 的 RAM,否则这些短期文件永远不会命中磁盘,所有操作都将在缓存中进行。

因此,换句话说,因为您使用的是 tmpfs,所以没有什么可担心的,如果您没有使用,则仍然没有什么可担心的。