我偶然发现 /tmp 目录中不断创建一些文件,然后立即删除。使用连续操作,ls -l /tmp
我设法捕获了创建的文件:
-rw------- 1 root root 0 Apr 2 19:37 YlOmPA069G
-rw------- 1 root root 0 Apr 2 19:37 l74jZzbcs6
或者另一个例子:
-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
这是关于 Ubuntu 18.10 4.18.0-16-generic 的问题。这是一个几乎全新的安装:我添加了一些服务器软件(nginx、mysql、php7.2-fpm),但即使关闭了这些软件,问题仍然存在。
创建了哪些文件以及为什么创建?我该如何阻止这种行为?不受欢迎的一对一固态硬盘
谢谢你!
更新
问题是当 RAM 中没有 /tmp 时(没有临时文件)。
罪魁祸首是x2goserver.服务否则一定有一。
答案1
我建议安装并运行 fnotifystat 来检测创建这些文件的进程:
sudo apt-get install fnotifystat
sudo fnotifystat -i /tmp
您将看到执行打开/关闭/读/写活动的进程如下所示:
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)
答案2
确定哪个程序/进程正在接触文件
您可以使用以下工具来lsof
确定哪些进程和二进制文件正在接触/打开哪些文件。如果文件频繁更改,这可能会变得麻烦,因此您可以设置一个监视程序来通知您:
$ sudo fnotifystat -i /tmp
有时,只需看一下用户或群组所有者就可以给您一个很好的提示(即ls -lsha
:)。
放入/tmp
内存而不是磁盘
如果需要,您可以将/tmp
目录放入 RAM。您必须根据可用 RAM 以及读/写的大小和频率来确定这是否是明智之举。
$ sudo vim /etc/fstab
...
# tmpfs in RAM
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
...
$ sudo mount /tmp
$ mount | grep tmp # Check /tmp is in RAM
tmpfs on /tmp type tmpfs (rw,noatime)
如果您有足够的 RAM,那么这对于延长 SSD 的使用寿命以及提高系统速度来说都是一件非常好的事情。如果您tmpreaper
(有时tmpwatch
)调整得更积极,甚至可以使用较少的 RAM 来实现此目的。
答案3
SSD 上非常不理想的情况
您使用以下标签标记了您的问题临时文件,所以我不太清楚这与 SSD 有什么关系。Tmpfs 是一个内存中(或更准确地说,块缓存中)文件系统,因此它永远不会到达物理磁盘。
此外,即使您的文件系统有一个物理备用存储/tmp
,除非您的系统只有几千字节的 RAM,否则那些短暂的文件永远不会到达磁盘,所有操作都将在缓存中进行。
所以,换句话说,由于您正在使用 tmpfs,所以没有什么可担心的,如果您没有使用,也没有什么可担心的。
答案4
您使用了错误的/dev/nvme0...
名字:
$ sudo tune2fs -l /dev/nvme0n1
tune2fs 1.42.13 (17-May-2015)
tune2fs: Bad magic number in super-block while trying to open /dev/nvme0n1
Couldn't find valid filesystem superblock.
正确的格式是:
$ sudo tune2fs -l /dev/nvme0n1p6
tune2fs 1.42.13 (17-May-2015)
Filesystem volume name: New_Ubuntu_16.04
Last mounted on: /
Filesystem UUID: b40b3925-70ef-447f-923e-1b05467c00e7
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags: signed_directory_hash
Default mount options: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 2953920
Block count: 11829504
Reserved block count: 534012
Free blocks: 6883701
Free inodes: 2277641
First block: 0
Block size: 4096
Fragment size: 4096
Reserved GDT blocks: 1021
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8160
Inode blocks per group: 510
Flex block group size: 16
Filesystem created: Thu Aug 2 20:14:59 2018
Last mount time: Thu Apr 4 21:05:29 2019
Last write time: Thu Feb 14 21:36:27 2019
Mount count: 377
Maximum mount count: -1
Last checked: Thu Aug 2 20:14:59 2018
Check interval: 0 (<none>)
Lifetime writes: 4920 GB
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 256
Required extra isize: 28
Desired extra isize: 28
Journal inode: 8
First orphan inode: 1308352
Default directory hash: half_md4
Directory Hash Seed: a179d56c-6c68-468c-8070-ffa5bb7cd973
Journal backup: inode blocks
据,直到...为止NVMe SSD 的使用寿命去:
$ sudo nvme smart-log /dev/nvme0
Smart Log for NVME device:nvme0 namespace-id:ffffffff
critical_warning : 0
temperature : 38 C
available_spare : 100%
available_spare_threshold : 10%
percentage_used : 0%
data_units_read : 22,351,778
data_units_written : 14,667,833
host_read_commands : 379,349,109
host_write_commands : 127,359,479
controller_busy_time : 952
power_cycles : 1,925
power_on_hours : 1,016
unsafe_shutdowns : 113
media_errors : 0
num_err_log_entries : 598
Warning Temperature Time : 0
Critical Composite Temperature Time : 0
Temperature Sensor 1 : 38 C
Temperature Sensor 2 : 49 C
Temperature Sensor 3 : 0 C
Temperature Sensor 4 : 0 C
Temperature Sensor 5 : 0 C
Temperature Sensor 6 : 0 C
Temperature Sensor 7 : 0 C
Temperature Sensor 8 : 0 C
这里的关键是:
percentage_used : 0%
使用 18 个月后,SSD 的使用率是 0%。如果使用 3 年后达到 1%,那么我知道 SSD 可以使用 300 年。
显然这个答案不适合在评论部分回复其他评论。