zoukankan      html  css  js  c++  java
  • X debugfs命令Linux 通过debugfs查看文件的真正创建时间,不是stat里面的access,modify和change时间,而是crtime

    1

    stat命令可以查看到访问时间,修改时间以及属性变动的改动时间,但看不到创建时间。 本文介绍用过debugfs来获取文件真是的创建时间。

    stat的输出

    [root@rh6-1 ~]# stat /opt/gnode/userdata/gbase/gctmpdb/metadata
      File: `/opt/gnode/userdata/gbase/gctmpdb/metadata'
      Size: 4096            Blocks: 8          IO Block: 4096   directory
    Device: 802h/2050d      Inode: 1465051     Links: 2
    Access: (0700/drwx------)  Uid: (  500/   gbase)   Gid: (  500/   gbase)
    Access: 2020-12-22 09:15:11.470000001 +0800
    Modify: 2020-12-22 09:56:36.025000002 +0800
    Change: 2020-12-22 09:56:36.025000002 +0800
    

    debugfs命令

    原理是根据文件的inode,获得其创建时间,除非文件或目录被重建且inode发生了变化,否则inode的时间就是对应的创建时间。

    输出内容中的 crtime 就是创建时间。

    另外, ctime是最后属性改变时间,等同于Change time。

    获得inode的方法

    ls 用 -i参数

    [root@rh6-1 ~]# ls -id /opt/gnode/userdata/gbase/gctmpdb/metadata
    1465051 /opt/gnode/userdata/gbase/gctmpdb/metadata
    

    debugfs获得inode信息

    命令样式如下

    debugfs -R ‘stat XXXXX’ /dev/sdX

    其中后面的/dev/sda2是文件对应的设备编号,可以从df输出里看到。

    [root@rh6-1 ~]# df
    Filesystem           1K-blocks      Used Available Use% Mounted on
    /dev/sda2             28898428   5742124  21688352  21% /
    tmpfs                  4095964     44208   4051756   2% /dev/shm
    

    方法1, 用inode号

    用stat <inode> 作为参数

    [root@rh6-1 ~]# debugfs -R 'stat <1465051>' /dev/sda2
    debugfs 1.41.12 (17-May-2010)
    Inode: 1465051   Type: directory    Mode:  0700   Flags: 0x80000
    Generation: 1377903021    Version: 0x00000000:0002eb62
    User:   500   Group:   500   Size: 4096
    File ACL: 0    Directory ACL: 0
    Links: 2   Blockcount: 8
    Fragment:  Address: 0    Number: 0    Size: 0
     ctime: 0x5fe15254:05f5e108 -- Tue Dec 22 09:56:36 2020
     atime: 0x5fe1663b:c7516b34 -- Tue Dec 22 11:21:31 2020
     mtime: 0x5fe15254:05f5e108 -- Tue Dec 22 09:56:36 2020
    crtime: 0x5f976f18:3bd7d2d4 -- Tue Oct 27 08:51:36 2020
    Size of extra inode fields: 28
    EXTENTS:
    (0): 5777189
    

    方法2,直接用路径

    用目录作为stat的参数

    [root@rh6-1 ~]# debugfs -R 'stat /opt/gnode/userdata/gbase/gctmpdb/metadata' /dev/sda2
    debugfs 1.41.12 (17-May-2010)
    Inode: 1465051   Type: directory    Mode:  0700   Flags: 0x80000
    Generation: 1377903021    Version: 0x00000000:0002eb62
    User:   500   Group:   500   Size: 4096
    File ACL: 0    Directory ACL: 0
    Links: 2   Blockcount: 8
    Fragment:  Address: 0    Number: 0    Size: 0
     ctime: 0x5fe15254:05f5e108 -- Tue Dec 22 09:56:36 2020
     atime: 0x5fe1489f:700e8604 -- Tue Dec 22 09:15:11 2020
     mtime: 0x5fe15254:05f5e108 -- Tue Dec 22 09:56:36 2020
    crtime: 0x5f976f18:3bd7d2d4 -- Tue Oct 27 08:51:36 2020
    Size of extra inode fields: 28
    EXTENTS:
    (0): 5777189
    

    加上grep过滤crtime

    [root@rh6-1 ~]# debugfs -R 'stat /opt/gnode/userdata/gbase/gctmpdb/metadata' /dev/sda2 | grep crtime
    debugfs 1.41.12 (17-May-2010)
    crtime: 0x5f976f18:3bd7d2d4 -- Tue Oct 27 08:51:36 2020
    [root@rh6-1 ~]# debugfs -R 'stat /opt/gnode/userdata/gbase/gctmpdb/sys_tablespace' /dev/sda2 | grep crtime
    debugfs 1.41.12 (17-May-2010)
    crtime: 0x5f976f18:3bd7d2d4 -- Tue Oct 27 08:51:36 2020
    [root@rh6-1 ~]#
    

    总结

    要是inode的create时间是我们安装时间,那就不是应用的使用问题,而是文件系统故障。 如果是最近的其它时间,可以查看对应那个时间点到底出了啥事情,比如重建了。

    ok

  • 相关阅读:
    云计算OpenStack核心组件---keystone身份认证服务(5)
    云计算OpenStack环境搭建(4)
    云计算OpenStack共享组件---Memcache缓存系统(3)
    云计算OpenStack共享组件---信息队列rabbitmq(2)
    【面试题41】和为s的两个数字VS和为s的连续整数序列
    反转单链表
    【面试题40】数组中只出现一次的数字
    【面试题39】二叉树的深度
    【面试题38】数字在排序数组中出现的次数
    最少钱币问题
  • 原文地址:https://www.cnblogs.com/chendian0/p/14578590.html
Copyright © 2011-2022 走看看