AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1130673
Accepted
Adrian
Adrian
Asked: 2019-04-03 08:43:39 +0800 CST2019-04-03 08:43:39 +0800 CST 2019-04-03 08:43:39 +0800 CST

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

  • 772

我错误地注意到在 /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

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

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

谢谢!

更新

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

tmp files
  • 5 5 个回答
  • 5262 Views

5 个回答

  • Voted
  1. Best Answer
    Colin Ian King
    2019-04-03T08:55:26+08:002019-04-03T08:55:26+08:00

    我建议安装并运行 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)
    
    • 17
  2. earthmeLon
    2019-04-03T08:57:15+08:002019-04-03T08:57:15+08:00

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

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

    $ sudo fnotifystat -i /tmp
    

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


    放入/tmpRAM 而不是磁盘

    如果您愿意,可以将/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 来完成此操作。

    • 8
  3. Jörg W Mittag
    2019-04-03T23:14:24+08:002019-04-03T23:14:24+08:00

    SSD上非常不受欢迎的

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

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

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

    • 6
  4. Fraser Gunn
    2019-04-10T09:36:22+08:002019-04-10T09:36:22+08:00

    人们太担心 SSD 的写入耐久性。假设创建和删除一个空文件每秒写入 24 kB,并使用流行的三星 860 EVO 250 GB 的 150 TBW 规格,磨损需要 193 年!

    (150 * 10 ^ 12) / ((2 * 3 * 4 * 1024) * 60 * 60 * 24 * 365.25) = 193

    对于 ext4 文件系统,使用“tune2fs -l”来查找 Lifetime 写入。或者,使用“smartctl -a”并查找 Total_LBA_Written。我总是发现SSD还有很多寿命。

    • 0
  5. WinEunuuchs2Unix
    2019-04-10T17:27:23+08:002019-04-10T17:27:23+08:00

    您使用了错误的/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 年。

    显然,这个答案不适合评论部分来回复其他评论。

    • 0

相关问题

  • 如何使用 Ubuntu One 与朋友共享文件夹?

  • 如何从命令行获取文件的 mime 类型?

  • examples.desktop 是做什么的?

  • 查看或转换 MDI 文件 [关闭]

  • /tmp 的好文件系统?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve