我错误地注意到在 /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)
您可以使用诸如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 来完成此操作。