欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解析Linux?xfs文件系統(tǒng)stat命令Birth字段為空的原因

 更新時間:2023年05月11日 08:31:32   作者:瀟湘隱者  
這篇文章主要介紹了Linux?xfs文件系統(tǒng)stat命令Birth字段為空的原因探究,stat命令在一些平臺下Birth字段有值,而在一些平臺則為空值,這是什么原因呢,下面小編給大家詳細講解,需要的朋友可以參考下

在Linux平臺找出某個目錄下創(chuàng)建時間最早的文件,測試驗證腳本結果是否準確的過程中發(fā)現(xiàn)一個很有意思的現(xiàn)象,stat命令在一些平臺下Birth字段有值,而在一些平臺則為空值,如下所示:

RHEL 8.7下, XFS文件系統(tǒng)

[mysql@mysqlu02?~]$?more?/etc/redhat-release?
Red?Hat?Enterprise?Linux?release?8.7?(Ootpa)
[mysql@mysqlu02?~]$?touch?test.txt
[mysql@mysqlu02?~]$?stat?test.txt
??File:?test.txt
??Size:?0???????????????Blocks:?0??????????IO?Block:?4096???regular?empty?file
Device:?fd05h/64773d????Inode:?144?????????Links:?1
Access:?(0644/-rw-r--r--)??Uid:?(??801/???mysql)???Gid:?(??800/???mysql)
Access:?2023-05-06?17:09:44.428050549?+0800
Modify:?2023-05-06?17:09:44.428050549?+0800
Change:?2023-05-06?17:09:44.428050549?+0800
?Birth:?2023-05-06?17:09:44.428050549?+0800

RHEL 7.9 XFS文件系統(tǒng)

[oracle@KerryDB?~]$?more?/etc/redhat-release?
Red?Hat?Enterprise?Linux?Server?release?7.9?(Maipo)
[oracle@KerryDB?~]$?touch?test.txt
[oracle@KerryDB?~]$?stat?test.txt
??File:?‘test.txt'
??Size:?0???????????????Blocks:?0??????????IO?Block:?4096???regular?empty?file
Device:?fd03h/64771d????Inode:?4238838?????Links:?1
Access:?(0644/-rw-r--r--)??Uid:?(??700/??oracle)???Gid:?(??600/oinstall)
Access:?2023-05-06?17:03:42.964517675?+0800
Modify:?2023-05-06?17:03:42.964517675?+0800
Change:?2023-05-06?17:03:42.964517675?+0800
?Birth:?-
[oracle@KerryDB?~]$

stat命令的Birth字段表示文件的創(chuàng)建時間,該屬性是ext4的新功能(當然也適用于xfs文件系統(tǒng)),也稱為crtime或btime,但是當前兩個測試環(huán)境的文件系統(tǒng)為xfs,之前也在xfs文件系統(tǒng)中測試過,發(fā)現(xiàn)xfs不支持creation time. 但是從xfs v5開始,xfs已經(jīng)支持creation time,文檔[1]中已有闡述,如下所示:

/*?version?5?filesystem?(inode?version?3)?fields?start?here?*/
?????__le32????????????????????di_crc;
?????__be64????????????????????di_changecount;
?????__be64????????????????????di_lsn;
?????__be64????????????????????di_flags2;
?????__be32????????????????????di_cowextsize;
?????__u8??????????????????????di_pad2[12];
?????xfs_timestamp_t???????????di_crtime;
?????__be64????????????????????di_ino;
?????uuid_t????????????????????di_uuid;
};
*di_crtime*::
Specifies?the?time?when?this?inode?was?created.

但是上面這個差異現(xiàn)象,還是讓我有點好奇,因為兩個測試環(huán)境對應的xfs版本都是v5,如下所示。

KerryDB這臺機器的xfs版本信息:

Oracle用戶:

$?uname?-r
3.10.0-1160.80.1.el7.x86_64
$?dmesg?|?grep?-iE?'xfs.*\s+mounting'?|?head?-1
[????4.041026]?XFS?(dm-0):?Mounting?V5?Filesystem

root用戶:

#?xfs_db?-r?/dev/mapper/vg00-home
xfs_db>?version
versionnum?[0xb4b5+0x18a]?=?V5,NLINK,DIRV2,ATTR,ALIGN,LOGV2,EXTFLG,MOREBITS,ATTR2,LAZYSBCOUNT,PROJID32BIT,CRC,FTYPE
xfs_db>

mysqlu02這臺機器的xfs版本信息:

mysql用戶:

$?dmesg?|?grep?-iE?'xfs.*\s+mounting'?|?head?-1
[????7.654324]?XFS?(dm-0):?Mounting?V5?Filesystem

root用戶:

#?xfs_db?-r?/dev/mapper/vg00-home
xfs_db>?version
versionnum?[0xb4b5+0x18a]?=?V5,NLINK,DIRV2,ATTR,ALIGN,LOGV2,EXTFLG,MOREBITS,ATTR2,LAZYSBCOUNT,PROJID32BIT,CRC,FTYPE,FINOBT,SPARSE_INODES,REFLINK
xfs_db>

那么到底是什么原因導致。Google搜索了相關資料,原來,如果stat命令查看xfs文件系統(tǒng)的文件時,如果要Birth字段不顯示空置,必須滿足幾個條件,一個是xfs的版本為v5,另外,對操作系統(tǒng)內(nèi)核版本也有要求(如下所示)

stat “now prints file creation time when supported by the file system, on GNU Linux systems with glibc >= 2.28 and kernel >= 4.11.”

KerryDB這臺服務器內(nèi)核信息如下所示

$?uname?-r
3.10.0-1160.80.1.el7.x86_64

mysqlu02這臺服務器的內(nèi)核信息如下所示:

$?uname?-r
4.18.0-425.3.1.el8.x86_64

如上所示,stat命令Birth字段為空置的操作系統(tǒng)內(nèi)核版本為3.10.0,不滿足條件kernerl >=4.11 所以stat命令顯示空值。

參考資料

1: https://git.kernel.org/pub/scm/fs/xfs/xfs-documentation.git/tree/design/XFS_Filesystem_Structure/ondisk_inode.asciidoc

到此這篇關于Linux xfs文件系統(tǒng)stat命令Birth字段為空的原因探究的文章就介紹到這了,更多相關Linux xfs文件系統(tǒng)stat命令內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Linux輸出內(nèi)容到指定文件的解決方案

    Linux輸出內(nèi)容到指定文件的解決方案

    這篇文章主要介紹了Linux輸出內(nèi)容到指定文件的解決方案,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • 淺析linux下如何用腳本自動發(fā)送文本mail郵件

    淺析linux下如何用腳本自動發(fā)送文本mail郵件

    這篇文章主要是介紹如何linux下通過腳本自動發(fā)送文本mail郵件,特分享下,方便需要的朋友
    2013-05-05
  • shell函數(shù)內(nèi)調用另一個函數(shù)(不帶返回值和帶返回值)

    shell函數(shù)內(nèi)調用另一個函數(shù)(不帶返回值和帶返回值)

    本文主要介紹了shell函數(shù)內(nèi)調用另一個函數(shù)(不帶返回值和帶返回值),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08
  • Linux bc命令實現(xiàn)數(shù)學計算器

    Linux bc命令實現(xiàn)數(shù)學計算器

    這篇文章主要介紹了Linux bc命令實現(xiàn)數(shù)學計算器,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • expect實現(xiàn)批量修改linux密碼腳本分享

    expect實現(xiàn)批量修改linux密碼腳本分享

    這篇文章主要介紹了expect實現(xiàn)批量修改Linux密碼腳本分享,本文直接給出實現(xiàn)代碼,需要的朋友可以參考下
    2014-12-12
  • Shell實用技巧:快速去除字符串中的空格

    Shell實用技巧:快速去除字符串中的空格

    這篇文章主要介紹了Shell實用技巧:快速去除字符串中的空格,本文給出了3種方法,分別講解了刪除行首空格、刪除行末空格、刪除所有空格等內(nèi)容,需要的朋友可以參考下
    2014-11-11
  • linux下監(jiān)控網(wǎng)絡流量的腳本

    linux下監(jiān)控網(wǎng)絡流量的腳本

    在我們的日常工作當中,監(jiān)控網(wǎng)絡要么使用iptarf,ifstat這些命令實現(xiàn)的,但是需要裝額外的RPM包。特別是iptarf裝起來麻煩
    2013-01-01
  • nginx日志切割shell腳本

    nginx日志切割shell腳本

    nginx的日志文件沒有rotate功能。如果你不處理,日志文件將變得越來越大,還好我們可以寫一個nginx日志切割腳本來自動切割日志文件
    2014-03-03
  • Linux中cut命令的基本使用詳解

    Linux中cut命令的基本使用詳解

    cut命令是一個Linux/Unix命令,用于從文件或標準輸入中提取字段并輸出到標準輸出,這篇文章主要介紹了Linux系統(tǒng)之cut命令的基本使用,需要的朋友可以參考下
    2023-05-05
  • Shell中變量作用域的介紹與使用命令

    Shell中變量作用域的介紹與使用命令

    作用域是我們在日常學習或者工作中經(jīng)常會遇到的一個問題,下面這篇文章主要給大家介紹了關于Shell中變量作用域的相關資料,文中介紹的非常詳細,需要的朋友可以參考借鑒,下面跟著小編來一起學習學習吧。
    2017-08-08

最新評論