婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > linux下獲取文件的創(chuàng)建時間與實戰(zhàn)教程

linux下獲取文件的創(chuàng)建時間與實戰(zhàn)教程

熱門標(biāo)簽:400電話申請知乎 百度地圖標(biāo)注尺寸無法顯示 外呼系統(tǒng)虛擬號碼 泰州智能外呼系統(tǒng)排名 長春電銷外呼系統(tǒng)代理商 大連電銷外呼系統(tǒng)運(yùn)營商 400電話干嘛怎么申請信用卡 代理外呼系統(tǒng)創(chuàng)業(yè) 接電話機(jī)器人罵人

背景

有時候我們需要獲取文件的創(chuàng)建時間。

例如:

我在研究 《xtrabackup 原理圖》的時候,想通過觀察確認(rèn) xtrabackup_log 是最早創(chuàng)建 并且是 最晚保存的文件。我們就需要知道 xtrabackup_logfile 這個文件的創(chuàng)建時間戳和修改時間戳。

復(fù)習(xí): Linux關(guān)于文件的三個時間戳

Linux 的文件系統(tǒng)保存有三個時間戳,利用 stat 指令查看文件信息可以獲取。他們分別是 ATime、MTime 和 CTime

[root@192-168-199-198 backups]# stat 2.txt 
 File: ‘2.txt'
 Size: 16   Blocks: 8   IO Block: 4096 regular file
Device: 821h/2081d Inode: 15   Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2019-07-23 12:12:14.276981038 +0800
Modify: 2019-07-23 12:12:41.415980158 +0800
Change: 2019-07-23 12:12:41.415980158 +0800
 Birth: -

ATime ——文件的最近訪問時間

只要讀取文件,ATime 就會更新,對應(yīng)的是 stat 命令獲取的 Access 的值。

[root@192-168-199-198 backups]# cat 2.txt #<-- 讀取文件
121231233123123
[root@192-168-199-198 backups]# stat 2.txt 
 File: ‘2.txt'
 Size: 16   Blocks: 8   IO Block: 4096 regular file
Device: 821h/2081d Inode: 15   Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2019-07-23 12:22:09.644961733 +0800 #<-- 時間變化了
Modify: 2019-07-23 12:12:41.415980158 +0800
Change: 2019-07-23 12:12:41.415980158 +0800
 Birth: -

MTime ——文件的內(nèi)容最近修改的時間

當(dāng)文件進(jìn)行被寫的時候,CTime 就會更新,對應(yīng)的是 stat 命令獲取的 Modify 的值。

[root@192-168-199-198 backups]# echo hello_world > 2.txt #<-- 修改文件內(nèi)容
[root@192-168-199-198 backups]# stat 2.txt 
 File: ‘2.txt'
 Size: 12   Blocks: 8   IO Block: 4096 regular file
Device: 821h/2081d Inode: 15   Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2019-07-23 12:22:09.644961733 +0800
Modify: 2019-07-23 12:26:23.466953503 +0800 #<-- 時間變化了
Change: 2019-07-23 12:26:23.466953503 +0800
 Birth: -

這里不要用vi修改文件內(nèi)容,因為用vi修改文件內(nèi)容有可能會引起Inode變更,也就是你觀察的文件并不是之前的文件了!這個和vi的原理有關(guān)。

CTime ——文件屬性最近修改的時間

當(dāng)文件的目錄被修改,或者文件的所有者,權(quán)限等被修改時,CTime 也就會更新,對應(yīng)的是 stat 命令獲取的 Change 的值。

[root@192-168-199-198 backups]# chmod 777 2.txt #<-- 修改文件屬性
[root@192-168-199-198 backups]# stat 2.txt 
 File: ‘2.txt'
 Size: 12   Blocks: 8   IO Block: 4096 regular file
Device: 821h/2081d Inode: 15   Links: 1
Access: (0777/-rwxrwxrwx) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2019-07-23 12:22:09.644961733 +0800
Modify: 2019-07-23 12:26:23.466953503 +0800
Change: 2019-07-23 12:30:35.830945320 +0800 #<-- 時間變化了
 Birth: -

Linux 無法獲取文件創(chuàng)建時間?

現(xiàn)在我們知道了Linux有三種時間,ATime、MTime 和 CTime,那么很好奇為什么沒有 CRTime (創(chuàng)建時間) 呢?

對比 Windows 系統(tǒng) (上圖),Windows 的 NTFS 文件系統(tǒng)里存在三個時間戳,其中就包含了“創(chuàng)建時間”,但在 Linux 的設(shè)計哲學(xué)上沒有文件“創(chuàng)建時間”這么一說,所以早期版本的ext文件系統(tǒng)不支持文件“創(chuàng)建時間”。但從 ext4 版本開始,文件創(chuàng)建時間存儲在ext4文件系統(tǒng)的inode中,所以 ext4 文件系統(tǒng)使用特殊方法也是可以獲取文件的創(chuàng)建時間的。

也說明了,是否能獲取文件的創(chuàng)建時間,和文件系統(tǒng)是否支持有關(guān)。

Linux 上獲取文件創(chuàng)建時間的步驟

CentOS7 Linux系統(tǒng)自帶一個工具,叫做 debugfs,他可以查出 ext4 文件系統(tǒng)上的文件的創(chuàng)建時間。man debugfs 發(fā)現(xiàn)工具的描述是 “ext2/ext3/ext4 file system debugger”,所以他是不支持 xfs 文件系統(tǒng)的。

常用的 xfs 文件系統(tǒng)是否支持獲取文件創(chuàng)建時間,還有如何獲取,這個暫時不清楚,需讀者查閱官方文檔

1. 獲取文件的 inode 號

方法一:

[root@192-168-199-198 backups]# stat /backups/2.txt
 File: ‘/backups/2.txt'
 Size: 30   Blocks: 8   IO Block: 4096 regular file
Device: 821h/2081d Inode: 14 #<--- 這個  Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2019-07-23 12:49:11.462909146 +0800
Modify: 2019-07-23 12:49:11.462909146 +0800
Change: 2019-07-23 13:08:20.138871900 +0800
 Birth: -

方法二:

[root@192-168-199-198 backups]# ls -i /backups/2.txt
14 /backups/2.txt

這里,我們獲取的 inode 編號是 14。

2. 查找文件所在磁盤路徑

[root@192-168-199-198 backups]# df -h
Filesystem        Size Used Avail Use% Mounted on
/dev/mapper/centos-root  46G  23G  24G 49% /
devtmpfs         3.8G   0 3.8G  0% /dev
tmpfs          3.9G 8.0K 3.9G  1% /dev/shm
tmpfs          3.9G  12M 3.8G  1% /run
tmpfs          3.9G   0 3.9G  0% /sys/fs/cgroup
/dev/sdb1        100G  77G  24G 77% /data2
/dev/sdc1         50G  53M  47G  1% /backups  #<--- 可以看出文件在這里面
/dev/sda1        1014M 142M 873M 14% /boot
tmpfs          781M   0 781M  0% /run/user/0

磁盤路徑為 /dev/sdc1

3. 使用debugfs 查看文件創(chuàng)建時間

[root@192-168-199-198 backups]# debugfs -R 'stat <14>' /dev/sdc1
debugfs 1.42.9 (28-Dec-2013)
Inode: 14  Type: regular  Mode: 0644  Flags: 0x80000
Generation: 737271740  Version: 0x00000000:00000001
User:   0  Group:   0  Size: 30
File ACL: 0  Directory ACL: 0
Links: 1  Blockcount: 8
Fragment: Address: 0  Number: 0  Size: 0
 ctime: 0x5d369644:211c1170 -- Tue Jul 23 13:08:20 2019
 atime: 0x5d3691c7:6e5dbb68 -- Tue Jul 23 12:49:11 2019
 mtime: 0x5d3691c7:6e5dbb68 -- Tue Jul 23 12:49:11 2019
crtime: 0x5d3691c7:6e5dbb68 -- Tue Jul 23 12:49:11 2019
Size of extra inode fields: 28
EXTENTS:
(0):35337

獲取文件創(chuàng)建時間的腳本

鑒于獲取文件創(chuàng)建時間步驟操作有點麻煩 (雖然只有三步 :) )

我這里提供了一個腳本

vi statx

#!/bin/sh

[ $# -ne 1 ] && echo "Usage:   $0 {FILENAME}" && exit 1

INODE=`ls -i $1 |awk '{print $1}'`
FILENAME=$1

#如果傳入?yún)?shù)帶/,則獲取這個傳入?yún)?shù)的目錄路徑并進(jìn)入目錄
 `echo $FILENAME |grep / 1> /dev/null` && { FPWD=${FILENAME%/*};FPWD=${FPWD:=/};cd ${FPWD};FPWD=`pwd`; } || FPWD=`pwd`

 

array=(`echo ${FPWD} | sed 's@/@ @g'`)
array_length=${#array[@]}

for ((i=${array_length};i>=0;i--))
do
 unset array[$i]
 SUBPWD=`echo " "${array[@]} | sed 's@ @/@g'`
 DISK=`df -h |grep ${SUBPWD}$ |awk '{print $1}'`
 [[ -n $DISK ]] && break
done

 

#不是ext4就退出
[[ "`mount |grep ${DISK} |awk '{print $5}'`" != "ext4" ]] && { echo ${DISK} is not mount on type ext4! Only ext4 file system support!;exit 2; }

debugfs -R "stat <${INODE}>" ${DISK}

使用:

chmod +x statx
mv statx /usr/sbin/statx

[root@192-168-199-198 backups]# statx 2.txt
debugfs 1.42.9 (28-Dec-2013)
Inode: 14  Type: regular  Mode: 0644  Flags: 0x80000
Generation: 737271740  Version: 0x00000000:00000001
User:   0  Group:   0  Size: 30
File ACL: 0  Directory ACL: 0
Links: 1  Blockcount: 8
Fragment: Address: 0  Number: 0  Size: 0
 ctime: 0x5d369644:211c1170 -- Tue Jul 23 13:08:20 2019
 atime: 0x5d36bb8f:56eb1e70 -- Tue Jul 23 15:47:27 2019
 mtime: 0x5d3691c7:6e5dbb68 -- Tue Jul 23 12:49:11 2019
crtime: 0x5d3691c7:6e5dbb68 -- Tue Jul 23 12:49:11 2019
Size of extra inode fields: 28
EXTENTS:
(0):35337

!!!請謹(jǐn)慎在生產(chǎn)環(huán)境使用,shell腳本沒有做太多的異常處理,不支持管道,不支持目錄也沒有經(jīng)過大量的測試

實戰(zhàn)
我們回過頭來,用這個方法,確認(rèn)《xtrabackup 原理圖》是否準(zhǔn)確。

我們需要驗證的是:

xtrabackup_log 是最早創(chuàng)建 并且是 最晚保存的文件

1. 創(chuàng)建備份

DATE=`date "+%Y%m%d%H%M%S"`
xtrabackup -uroot -proot \

 -S /tmp/mysql3306.sock \

 --backup \

 --target-dir=/backups/$DATE

2. 查找所有備份文件的crtime

cd /backups/$DATE
>/tmp/1.txt
>/tmp/2.txt
find . -type f >/tmp/1.txt

for i in `cat /tmp/1.txt`
do
 { echo -n $i" ";statx $i 2>/dev/null |grep crtime |awk '{print $7}'; } >>/tmp/2.txt
done

cat /tmp/2.txt |sort -k2 |less
###以下為輸出###
./ibdata1 23:32:59
./xtrabackup_logfile 23:32:59 #<---可以看出這個文件是最早創(chuàng)建的
./mysql/engine_cost.ibd 23:33:00
./mysql/gtid_executed.ibd 23:33:00
./mysql/help_category.ibd 23:33:00
./mysql/help_keyword.ibd 23:33:00
./mysql/help_relation.ibd 23:33:00
./mysql/help_topic.ibd 23:33:00
./mysql/innodb_index_stats.ibd 23:33:00
./mysql/innodb_table_stats.ibd 23:33:00
./mysql/plugin.ibd 23:33:00
./mysql/server_cost.ibd 23:33:00
./mysql/servers.ibd 23:33:00
./mysql/slave_master_info.ibd 23:33:00
./mysql/slave_relay_log_info.ibd 23:33:00
./mysql/slave_worker_info.ibd 23:33:00
./mysql/time_zone.ibd 23:33:00
./mysql/time_zone_leap_second.ibd 23:33:00
...
./zabbix/trigger_tag.frm 23:33:09
./zabbix/users.frm 23:33:09
./zabbix/users_groups.frm 23:33:09
./zabbix/usrgrp.frm 23:33:09
./zabbix/valuemaps.frm 23:33:09
./zabbix/widget_field.frm 23:33:09
./zabbix/widget.frm 23:33:09

3. 查找所有備份文件的mtime

>/tmp/1.txt
>/tmp/2.txt
find . -type f >/tmp/1.txt

for i in `cat /tmp/1.txt`
do
 { echo -n $i" ";statx $i 2>/dev/null |grep mtime |awk '{print $7}'; } >>/tmp/2.txt
done

cat /tmp/2.txt |sort -k2 |less
###以下為輸出###
./ibdata1 23:33:00
./mysql/engine_cost.ibd 23:33:00
./mysql/gtid_executed.ibd 23:33:00
./mysql/help_category.ibd 23:33:00
./mysql/help_keyword.ibd 23:33:00
./mysql/help_relation.ibd 23:33:00
./mysql/help_topic.ibd 23:33:00
./mysql/innodb_index_stats.ibd 23:33:00
./mysql/innodb_table_stats.ibd 23:33:00
./mysql/plugin.ibd 23:33:00
...
./xtrabackup_logfile 23:33:09 #<---可以看出這個文件是最后修改和保存的
./zabbix/acknowledges.frm 23:33:09
./zabbix/actions.frm 23:33:09
...
./zabbix/users_groups.frm 23:33:09
./zabbix/usrgrp.frm 23:33:09
./zabbix/valuemaps.frm 23:33:09
./zabbix/widget_field.frm 23:33:09
./zabbix/widget.frm 23:33:09

最后,我們通過文件的創(chuàng)建時間和修改時間,實戰(zhàn)地驗證了《xtrabackup 原理圖》的第一和第七步順序的正確性。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。

標(biāo)簽:臺灣 中衛(wèi) 興安盟 大慶 長治 安陽 雅安 清遠(yuǎn)

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《linux下獲取文件的創(chuàng)建時間與實戰(zhàn)教程》,本文關(guān)鍵詞  linux,下,獲取,文件,的,創(chuàng)建,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《linux下獲取文件的創(chuàng)建時間與實戰(zhàn)教程》相關(guān)的同類信息!
  • 本頁收集關(guān)于linux下獲取文件的創(chuàng)建時間與實戰(zhàn)教程的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产亚洲精品超碰| 麻豆精品一区二区| 成人在线视频一区二区| 国产欧美久久久精品影院| 国产精品一二三在| 久久免费午夜影院| 成人国产精品免费网站| 亚洲色图20p| 欧美日韩在线亚洲一区蜜芽| 亚洲成av人片| 欧美sm美女调教| 成人av网站在线观看免费| 18欧美亚洲精品| 欧美三区在线观看| 欧美a一区二区| 国产精品久久久久影院色老大| 成人深夜福利app| 亚洲一级二级三级| 精品乱码亚洲一区二区不卡| 国产91精品免费| 亚洲午夜一二三区视频| 精品久久久久久综合日本欧美 | 日韩国产欧美在线播放| 久久久久久久久蜜桃| 91蜜桃网址入口| 日韩av在线播放中文字幕| 久久久久亚洲综合| 欧美性色欧美a在线播放| 久久99国产精品免费网站| 中文字幕综合网| 精品久久久久av影院| 91亚洲永久精品| 精品一区二区三区不卡 | 九色|91porny| 亚洲少妇屁股交4| 欧美va亚洲va| 欧美日本国产视频| av在线播放一区二区三区| 免费观看一级欧美片| 亚洲欧美日韩中文播放| 精品国产3级a| 欧美乱妇20p| 色老头久久综合| 国产精华液一区二区三区| 日韩av不卡在线观看| 亚洲视频一二三区| 久久久久久97三级| 日韩一区二区三区视频| 欧美亚洲自拍偷拍| 99天天综合性| 国产精品系列在线播放| 蜜臀av一区二区| 亚洲成人av中文| 一区二区三区四区视频精品免费 | 精品国产一区二区三区忘忧草| 日本久久一区二区| 99精品一区二区三区| 国产精品白丝av| 国产乱人伦精品一区二区在线观看 | 国产日产亚洲精品系列| 日韩一区二区三区视频在线| 欧美视频在线一区| 91丨porny丨在线| 成人福利视频网站| 成人性生交大合| 成人黄色小视频在线观看| 国产又黄又大久久| 激情五月激情综合网| 精一区二区三区| 激情都市一区二区| 国产mv日韩mv欧美| 成人a区在线观看| 97久久精品人人做人人爽| 不卡的电影网站| 成人免费视频网站在线观看| 国产精品亚洲成人| www.欧美.com| 91麻豆自制传媒国产之光| 91天堂素人约啪| 在线免费观看不卡av| 91久久一区二区| 欧美日韩一级片在线观看| 欧美人狂配大交3d怪物一区| 欧美男人的天堂一二区| 日韩免费观看2025年上映的电影| 日韩视频免费直播| 久久青草欧美一区二区三区| 国产三区在线成人av| 国产精品乱人伦中文| 亚洲精品视频免费看| 一区二区高清免费观看影视大全 | 亚洲一区二区美女| 日韩精品国产精品| 精品一区二区在线观看| 粉嫩蜜臀av国产精品网站| 成人avav影音| 欧美影片第一页| 欧美人伦禁忌dvd放荡欲情| 欧美一二三四在线| 国产日韩欧美综合在线| 亚洲免费av网站| 日产国产欧美视频一区精品| 国产自产2019最新不卡| 91在线精品一区二区三区| 欧美日韩不卡视频| 国产欧美日韩在线| 午夜精品在线看| 高清久久久久久| 欧美日韩精品一区二区在线播放 | 精品99一区二区| 亚洲免费av在线| 激情综合色丁香一区二区| 99v久久综合狠狠综合久久| 欧美三级日韩三级| 久久精品综合网| 亚洲成人7777| av在线播放成人| 日韩视频一区二区在线观看| 国产精品进线69影院| 青青草伊人久久| 成人一级视频在线观看| 欧美日韩一区二区三区在线看| 欧美xingq一区二区| 亚洲国产视频直播| 成人视屏免费看| 亚洲精品一区二区三区香蕉| 亚洲精品久久7777| 国产成人av电影| 欧美精品一区二区三区蜜臀 | 精品国产一区二区三区忘忧草| 一级日本不卡的影视| 国产91精品精华液一区二区三区 | 欧日韩精品视频| 精品国产露脸精彩对白| 亚洲国产成人91porn| aaa亚洲精品| 国产视频一区在线播放| 精品制服美女久久| 欧美日高清视频| 亚洲一卡二卡三卡四卡| 91亚洲精品久久久蜜桃网站 | 国产日韩精品一区二区浪潮av| 日本伊人色综合网| 欧美亚洲一区三区| 一区二区在线观看视频在线观看| 国产91丝袜在线播放0| 久久久久久久久久久99999| 久久精品国产精品亚洲精品| 欧美午夜影院一区| 亚洲人精品午夜| www.视频一区| 成人欧美一区二区三区小说 | 欧美日韩激情一区二区三区| 亚洲男人天堂一区| 91老师国产黑色丝袜在线| 中文在线一区二区| 成人一区在线观看| 国产精品每日更新在线播放网址 | 亚洲福利一二三区| 色天天综合久久久久综合片| 亚洲视频一区在线| 色一情一伦一子一伦一区| 亚洲乱码国产乱码精品精可以看 | 韩国精品久久久| 欧美精品一区二区久久久 | 成人午夜免费视频| 日本一二三四高清不卡| 国产99一区视频免费| 中文字幕成人av| 99久久婷婷国产精品综合| 亚洲天堂2016| 色偷偷88欧美精品久久久| 一区二区三区精品视频在线| 欧美伊人精品成人久久综合97| 亚洲二区在线视频| 日韩免费一区二区| 成人一区二区三区视频| 日韩理论片在线| 欧洲av一区二区嗯嗯嗯啊| 亚洲成人综合视频| 日韩精品一区在线观看| 成人高清免费观看| 亚洲国产精品精华液网站| 欧美一区二区精品| 懂色av一区二区三区免费观看| 中文字幕一区二区三区不卡 | 大胆亚洲人体视频| 亚洲精选一二三| 欧美一区二区性放荡片| 国产美女视频91| 精久久久久久久久久久| www精品美女久久久tv| av在线播放一区二区三区| 亚洲一区二区3| 久久久久久久久久看片| 色成人在线视频| 久久99久久久久久久久久久| 国产精品丝袜黑色高跟| 欧美精品久久一区二区三区| 国产乱国产乱300精品|