linux中文件的三種time(atime,mtime,ctime)的用法
1.這三個(gè)time的含義
簡(jiǎn)名 | 全名 | 中文名 | 含義 |
---|---|---|---|
atime | access time | 訪(fǎng)問(wèn)時(shí)間 | 文件中的數(shù)據(jù)庫(kù)最后被訪(fǎng)問(wèn)的時(shí)間 |
mtime | modify time | 修改時(shí)間 | 文件內(nèi)容被修改的最后時(shí)間 |
ctime | change time | 變化時(shí)間 | 文件的元數(shù)據(jù)發(fā)生變化。比如權(quán)限,所有者等 |
2.如何查看這3個(gè)time
[root@centos7 time]# pwd /app/time [root@centos7 time]# ll total 8 -rw-------. 1 root root 1933 Nov 11 08:14 anaconda-ks.cfg -rw-r--r--. 1 root root 59 Nov 11 08:15 issue [root@centos7 time]# stat issue File: ‘issue' Size: 59 Blocks: 8 IO Block: 4096 regular file Device: 805h/2053d Inode: 261123 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Context: unconfined_u:object_r:etc_runtime_t:s0 Access: 2017-11-11 08:15:05.650986739 +0800 Modify: 2017-11-11 08:15:05.650986739 +0800 Change: 2017-11-11 08:15:05.650986739 +0800 Birth: - [root@centos7 time]# ls -l #默認(rèn)的ls -l顯示的是mtime total 8 -rw-------. 1 root????? root 1933 Nov 11 08:14 anaconda-ks.cfg -rw-r--r--. 1 zhaojiedi root?? 71 Nov 11 09:05 issue [root@centos7 time]# ls -l --time=atime #列出文件的atime total 8 -rw-------. 1 root????? root 1933 Nov 11 08:14 anaconda-ks.cfg -rw-r--r--. 1 zhaojiedi root?? 71 Nov 11 09:12 issue [root@centos7 time]# ls -l --time=ctime #列出ctime total 8 -rw-------. 1 root????? root 1933 Nov 11 08:14 anaconda-ks.cfg -rw-r--r--. 1 zhaojiedi root?? 71 Nov 11 09:03 issue
3.三個(gè)time的測(cè)試
3.1測(cè)試準(zhǔn)備工作
測(cè)試前,我們需要先關(guān)閉文件系統(tǒng)的relatime特性。這個(gè)隨后在說(shuō),具體操作如下。
[root@centos7 time]# mount -o remount,strictatime /app # 重新掛載我們的/app,并修改文件系統(tǒng)工作在嚴(yán)格atime上,也就是不啟用了默認(rèn)的relatime支持。 [root@centos7 time]# mount |grep /app #查看我們的修改 /dev/sda5 on /app type ext4 (rw,seclabel,data=ordered)
3.2讀取文件測(cè)試
[root@centos7 time]# stat issue #先獲取3個(gè)時(shí)間 File: ‘issue' Size: 59 Blocks: 8 IO Block: 4096 regular file Device: 805h/2053d Inode: 261123 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Context: unconfined_u:object_r:etc_runtime_t:s0 Access: 2017-11-11 08:15:05.650986739 +0800 Modify: 2017-11-11 08:15:05.650986739 +0800 Change: 2017-11-11 08:15:05.650986739 +0800 Birth: - [root@centos7 time]# cat issue #讀取下 \S Kernel \r on an \m tty: \l hostname: \n time: \t [root@centos7 time]# stat issue #再次查看3個(gè)時(shí)間 File: ‘issue' Size: 59 Blocks: 8 IO Block: 4096 regular file Device: 805h/2053d Inode: 261123 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Context: unconfined_u:object_r:etc_runtime_t:s0 Access: 2017-11-11 08:57:40.858948780 +0800 Modify: 2017-11-11 08:15:05.650986739 +0800 Change: 2017-11-11 08:15:05.650986739 +0800 Birth: -
通過(guò)上面的分析,我們可以看出來(lái),在使用cat讀取文件后,文件的atime發(fā)生了改變。其他的沒(méi)有改變。
3.3修改文件測(cè)試
[root@centos7 time]# stat issue #先獲取下3個(gè)time File: ‘issue' Size: 65 Blocks: 8 IO Block: 4096 regular file Device: 805h/2053d Inode: 261123 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Context: unconfined_u:object_r:etc_runtime_t:s0 Access: 2017-11-11 09:03:49.080931626 +0800 Modify: 2017-11-11 09:04:16.881930331 +0800 Change: 2017-11-11 09:04:16.881930331 +0800 Birth: - [root@centos7 time]# echo "hello" >> issue #修改文件 [root@centos7 time]# stat issue #再次查看三個(gè)time File: ‘issue' Size: 71 Blocks: 8 IO Block: 4096 regular file Device: 805h/2053d Inode: 261123 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Context: unconfined_u:object_r:etc_runtime_t:s0 Access: 2017-11-11 09:03:49.080931626 +0800 Modify: 2017-11-11 09:05:07.775927960 +0800 Change: 2017-11-11 09:05:07.775927960 +0800 Birth: -
通過(guò)上面的實(shí)驗(yàn),我們可以看出來(lái),寫(xiě)文件操作不會(huì)導(dǎo)致atime(訪(fǎng)問(wèn)時(shí)間)的修改,但是mtime和ctime會(huì)發(fā)生修改。mtime修改了我們可以理解的,畢竟我們修改了文件的,
那為何ctime也修改了呢, 仔細(xì)可以發(fā)現(xiàn)我們文件的大小發(fā)生了變化,也就是元數(shù)據(jù)發(fā)生了變化,所以ctime也是要變化的。
3.4修改文件所有者測(cè)試
[root@centos7 time]# stat issue #先查看下3個(gè)time File: ‘issue' Size: 71 Blocks: 8 IO Block: 4096 regular file Device: 805h/2053d Inode: 261123 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Context: unconfined_u:object_r:etc_runtime_t:s0 Access: 2017-11-11 09:03:49.080931626 +0800 Modify: 2017-11-11 09:05:07.775927960 +0800 Change: 2017-11-11 09:05:07.775927960 +0800 Birth: - [root@centos7 time]# chown zhaojiedi issue #修改權(quán)限 [root@centos7 time]# stat issue #再次查看3個(gè)時(shí)間 File: ‘issue' Size: 71 Blocks: 8 IO Block: 4096 regular file Device: 805h/2053d Inode: 261123 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 1000/zhaojiedi) Gid: ( 0/ root) Context: unconfined_u:object_r:etc_runtime_t:s0 Access: 2017-11-11 09:03:49.080931626 +0800 Modify: 2017-11-11 09:05:07.775927960 +0800 Change: 2017-11-11 09:12:42.076906795 +0800 Birth: -
通過(guò)上面的實(shí)驗(yàn),我們可以看出來(lái),修改了權(quán)限后,文件ctime發(fā)生了變化。
4.說(shuō)說(shuō)relatime
常用命令對(duì)三個(gè)time的修改情況我們上面的測(cè)試,可以看出來(lái),每次訪(fǎng)問(wèn)文件都會(huì)更新atime,這是很耗時(shí)的,尤其在web服務(wù)器上,大量用戶(hù)只是訪(fǎng)問(wèn)html頁(yè)面,完全沒(méi)有必要修改atime。
從kernel2.6.29開(kāi)始,文件系統(tǒng)默認(rèn)集成了一個(gè)relatime的屬性。
那么啥時(shí)候更新atime呢? 有2種情況會(huì)更新atime,第一種是mtime比atime新,第二種是上次訪(fǎng)問(wèn)是1天前的了。
5.常用命令對(duì)三個(gè)time的修改情況
上面我們做了3個(gè)測(cè)試,我們也對(duì)atime,mtime,ctime有了一定的了解。網(wǎng)上有人已經(jīng)做了好多測(cè)試如下表。
+-------------------------------------------------+ | | timestamps marked for update | | syscall |---------------------------------| | | file | parent dir | |---------------+-------------------+-------------| | [2]chdir | | | |---------------| - | - | | [3]fchdir | | | |---------------+-------------------+-------------| | [4]chmod | | | |---------------| ctime | - | | [5]fchmod | | | |---------------+-------------------+-------------| | [6]chown | | | |---------------| | | | [7]fchown | ctime | - | |---------------| | | | [8]lchown | | | |---------------+-------------------+-------------| | [9]close | - | - | |---------------+-------------------+-------------| | [10]creat | atime,ctime,mtime | ctime,mtime | |---------------+-------------------+-------------| | [11]execve | atime | - | |---------------+-------------------+-------------| | [12]fcntl | - | - | |---------------+-------------------+-------------| | [13]ftruncate | | | |---------------| ctime,mtime | - | | [14]truncate | | | |---------------+-------------------+-------------| | [15]fstat | | | |---------------| | | | [16]stat | - | - | |---------------| | | | [17]lstat | | | |---------------+-------------------+-------------| | [18]fsync | | | |---------------| - | - | | [19]fdatasync | | | |---------------+-------------------+-------------| | [20]link | ctime | ctime,mtime | |---------------+-------------------+-------------| | [21]lseek | - | - | |---------------+-------------------+-------------| | [22]mknod | atime,ctime,mtime | ctime,mtime | |---------------+-------------------+-------------| | [23]mkdir | atime,ctime,mtime | ctime,mtime | |---------------+-------------------+-------------| | [24]mmap | * | - | |---------------+-------------------+-------------| | [25]munmap | - | - | |---------------+-------------------+-------------| | [26]msync | * | - | |---------------+-------------------+-------------| | [27]open | * | * | |---------------+-------------------+-------------| | [28]pread | | | |---------------| | | | [29]read | atime | - | |---------------| | | | [30]readv | | | |---------------+-------------------+-------------| | [31]pwrite | | | |---------------| | | | [32]write | ctime,mtime | - | |---------------| | | | [33]writev | | | |---------------+-------------------+-------------| | [34]rename | implementation | ctime,mtime | |---------------+-------------------+-------------| | [35]rmdir | - | ctime,mtime | |---------------+-------------------+-------------| | [36]readlink | * | - | |---------------+-------------------+-------------| | [37]readdir | atime | - | |---------------+-------------------+-------------| | readahead | ? | ? | |---------------+-------------------+-------------| | [38]symlink | * | * | |---------------+-------------------+-------------| | sendfile | ? | ? | |---------------+-------------------+-------------| | [39]unlink | - | ctime,mtime | |---------------+-------------------+-------------| | [40]utime | ctime | - | +-------------------------------------------------+
到此這篇關(guān)于linux中文件的三種time(atime,mtime,ctime)的用法的文章就介紹到這了,更多相關(guān)linux time內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
shell腳本中整數(shù)型變量自增(加1)的幾種實(shí)現(xiàn)
本文主要介紹了shell腳本中整數(shù)型變量自增(加1)的幾種實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-05-053個(gè)備份系統(tǒng)文件并郵件發(fā)送的Shell腳本分享
這篇文章主要介紹了3個(gè)備份系統(tǒng)文件并郵件發(fā)送的Shell腳本分享,3個(gè)腳本分別對(duì)應(yīng)了普通需求腳本、推薦腳本、大文件需求腳本,需要的朋友可以參考下2014-09-09php-fpm開(kāi)機(jī)自動(dòng)啟動(dòng)Shell腳本
這篇文章主要介紹了php-fpm開(kāi)機(jī)自動(dòng)啟動(dòng)Shell腳本,本文腳本只是范例,其實(shí)你編譯安裝完成后,啟動(dòng)腳本已經(jīng)生成在編譯目錄中,只需要復(fù)制出來(lái)用就可以了,需要的朋友可以參考下2015-06-06Ubuntu下定時(shí)提交代碼到SVN服務(wù)器的Shell腳本分享
這篇文章主要介紹了Ubuntu下定時(shí)提交代碼到SVN服務(wù)器的Shell腳本分享,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-03-03