`
leixbo
  • 浏览: 32522 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

linux文件属性atime,ctime,mtime介绍

阅读更多

Linux下文件的时间分atime,ctime,mtime

 

   atime是指access time,即文件被读取或者执行的时间,修改文件是不会改变access time的。

   ctime即change time文件状态改变时间,指文件的i结点被修改的时间,如通过chmod修改文件属性,ctime就会被修改。

   mtime即modify time,指文件内容被修改的时间。 

  

使用stat可以查看文件的atime、ctime、mtime。

 

[leibo@localhost logs]$ stat uploadlog.log.2014-03-27

  File: "uploadlog.log.2014-03-27"

  Size: 3502      Blocks: 8          IO Block: 4096   普通文件

Device: 801h/2049dInode: 959479      Links: 1

Access: (0664/-rw-rw-r--)  Uid: (  508/   leibo)   Gid: (  509/   leibo)

Access: 2014-06-10 15:54:40.263218920 +0800

Modify: 2014-03-27 19:30:21.590565438 +0800

Change: 2014-06-10 12:27:21.718744108 +0800

 

 

 我们也可以通过ll查看这些时间,通常情况下我们使用的ls –l指示的是文件的modify time。

 

 -t根据修改时间排序

 -u 同-lt 一起使用:按照访问时间排序并显示

同-l一起使用:显示访问时间并按文件名排序其他:按照访问时间排序

 -c 配合-lt:根据ctime 排序并显示ctime(文件状态最后更改的时间)

 

 [leibo@localhost logs]$ ll -t

总用量 88

-rw-rw-r--. 1 leibo leibo  1754 6月  10 12:27 uploadlog.log

-rw-rw-r--. 1 leibo leibo 58353 3月  27 19:31 boss.log

-rw-rw-r--. 1 leibo leibo  3502 3月  27 19:30 uploadlog.log.2014-03-27

-rw-rw-r--. 1 leibo leibo 12584 3月  26 18:05 uploadlog.log.2014-03-26

-rw-rw-r--. 1 leibo leibo  1272 3月  26 15:31 boss.log.2014-03-26

[leibo@localhost logs]$ ll -c

总用量 88

-rw-rw-r--. 1 leibo leibo 58353 3月  27 19:31 boss.log

-rw-rw-r--. 1 leibo leibo  1272 3月  27 19:21 boss.log.2014-03-26

-rw-rw-r--. 1 leibo leibo  1754 6月  10 12:27 uploadlog.log

-rw-rw-r--. 1 leibo leibo 12584 3月  27 19:27 uploadlog.log.2014-03-26

-rw-rw-r--. 1 leibo leibo  3502 6月  10 12:27 uploadlog.log.2014-03-27

[leibo@localhost logs]$ ll -u

总用量 88

-rw-rw-r--. 1 leibo leibo 58353 6月  10 17:04 boss.log

-rw-rw-r--. 1 leibo leibo  1272 6月  10 17:04 boss.log.2014-03-26

-rw-rw-r--. 1 leibo leibo  1754 6月  10 17:04 uploadlog.log

-rw-rw-r--. 1 leibo leibo 12584 6月  10 16:02 uploadlog.log.2014-03-26

-rw-rw-r--. 1 leibo leibo  3502 6月  10 15:54 uploadlog.log.2014-03-27

 

 

atime的说明

 

   有些资料说明cat、more等读取文件的命令会改变atime,但是我试验时却发现使用cat、more时atime没有被修改,在一个博客http://blog.csdn.net/cjf_iceking/article/details/11988525找到了答案

    起初我也怀疑过是不是OS的bug导致的,后来发现,在kernel版本2.6.30之前,linux的核心开发人员针对Ext3/Ext4文件系统的性能进行了讨论,其中包括atime。在kernel 2.6.30之前,文件系统中默认会及时的更新atime,这样会带来两个问题:

(1) 系统中大量的文件访问,将atime写入到磁盘中,消耗时间,从而降低性能

(2) 这样的操作也会消耗电能

 

在Linux上运行的,很少的应用程序需要获取精确的atime时间,并且Linux核心开发人员从Ext3/Ext4文件系统的性能角度出发,决定在2.6.30版本的内核中修改atime的更新方式,只有在以下三种情况之一才会更新atime:

(1) 如果将分区mount的挂载的时候指定采用非relatime方式(默认采用relatime方式),如strictatime.

补充:在OS启动的时候,将各个分区挂载到不同的目录,在挂载(mount)的参数中采用strictatime,表明及时更新atime。在2.6.30之后mount添加了”relatime”和”strictatime”两个选项,详细的可以通过”man mount”查看。

(2) atime小于ctime或者小于mtime的时候

(3) 本次的access time和上次的atime超过24个小时

这种做法避免了频繁的更新atime,提高了文件系统的性能。果然做Linux内核的大牛无不从每一个细节抓起呢,敬佩。

 

 

 mtime的实用场景

 

    通常我们会使用log4j作为日志组件进行日志的记录,如每天一个日志文件,但存在存在一个问题即日志文件越来越多,在这种情况下log4j不会自动删除前面的日志文件。解决方式:你可以重写log4j,实现这种自动删除多少天的日志;当然我也可以巧用日志文件的mtime进行日志文件的删除,如以下命令

find /data/soft/xxx/logs  -type f -name "*.log*" -mtime +5 -exec rm -rf {} \;

 -type f是指定文件类型为普通文件。

 -mtime +5是指修改时间距离现在5天的文件。

   -exec rm -f指执行删除匹配出来的文件并且不提示,有的系统需要带单引号,有的不需要。

 

 这样可以实现删除5天前修改过的日志,5天之内修改过的日志不会进行任何处理

 

 

 

分享到:
评论

相关推荐

    linux下find命令-atime,-ctime,-mtime真正含义

    NULL 博文链接:https://hbiao68.iteye.com/blog/2167353

    windows下修改文件的atime、ctime、mtime的python代码

    使用方法: 输入python ModifyAMCtime.py 文件名 可以把文件的时间进行修改。可以修改代码,完成atime、ctime、mtime的自定义修改

    浅谈find命令下的atime,ctime,mtime

    linux下的find命令提供了相当多的查找条件,功能很强大,由于find的功能很强大,所以他的选项也很多,今天我们来细说一下find命令下的三个时间参数atime,ctime,mtime. atime:access time,最近一次访问时间,当使用...

    times:#golang文件时间(atime,mtime,ctime,btime)

    #golang的文件时间 Go在大多数平台上都具有隐藏的时间功能,此存储库使它们易于访问。 package main import ( "log" "github.com/djherbis/times" ) func main () { t , err := times . Stat ( "myfile" ) if ...

    Linux系统总复习.txt

    find -name -iname -size -user -atime -ctime -mtime -type -inum -perm -exec(查询结果中直接执行) locate 在数据库中按文件名查找 updatadb 强制更新数据库 grep -i -v -i 忽略大小写 -v 反向选择 4)帮助...

    AIDE 是一个监控文件系统变化的工具_C语言_代码_下载

    文件大小、mtime、atime、ctime、链接和不断增长的大小。 o 支持的校验和和哈希:SHA1、MD5、RMD160 和 TIGER。 如果编译了 Mhash 支持,则 CRC32、HAVAL 和 GOST。 o 为简单起见,纯文本配置文件和数据库。 o ...

    linux下获取文件的创建时间与实战教程

    背景 有时候我们需要获取文件的创建时间。 例如: 我在研究 《xtrabackup 原理图》的时候,想通过...他们分别是 ATime、MTime 和 CTime [root@192-168-199-198 backups]# stat 2.txt File: ‘2.txt' Size: 16 Bl

    linux备份与恢复基础知识

    unix系统为每个文件都记录这三个不同的时间,... 备份会改变atime,tar,cpio,dd都会这样做,dump通过原始设备来读取文件系统,因此它不 会改变atime. dump的语法。 dump levelunbdsf blkg-factor density size device-n

    入门学习Linux常用必会60个命令实例详解doc/txt

    -p,--preserve-timestamps:以<来源>文件的访问/修改时间作为相应的目的地文件的时间属性。 -s,--strip:用strip命令删除symbol table,只适用于第一及第二种使用格式。 -S,--suffix=后缀:自行指定...

    完整性检验工具Aide

    户组(group)、文件大小、最后修改时间(mtime)、创建时间(ctime)、最后访问时间 (atime)、 增加的大小以及连接数。 AIDE还能够使用下列算法: sha1、 md5、 rmd160、 tiger,以密文形式建立每个文件的校验码或散列。

    遍历指定目录,并存储目录内所有文件属性信息的php代码

    项目需要,需要写一个函数,能够遍历指定目录中的所有文件,而且这个... define('INDEXFORMAT',dir,name,size,perms,ower,group,ctime,mtime,atime,suffix) ; define('INDEXTXT', 'data/index.txt'); define('INDE

    开源项目-djherbis-times.zip

    开源项目-djherbis-times.zip,File Times for Go (atime, mtime, ctime, btime)

    find命令查询指定时间的大文件并删除

    find 查询路径 -ctime/-mtime/-atime 时间范围 -name 文件名称 -type f -exec rm {} \; --时间单位为分钟 find 查询路径 -cmin/-mmin/-amin 时间范围 -name 文件名称 -type f -exec rm {} \; 1.2 示例: --删除/...

    基于HTTP的文件系统SpockFS.zip

    SpockFS 是一个基于 HTTP 的文件系统,其...X-Spock-atime: 1420481542 X-Spock-ctime: 1420481543 X-Spock-nlink: 11 X-Spock-blocks: 1 X-Spock-dev: 16777224 X-Spock-ino: 106280423 标签:SpockFS

    File-Times-Display:一个 Mac OSX Cocoa 应用程序,显示给定文件或文件夹的 8 个不同的文件时间(和权限),并监控更改

    文件时间显示 一个 Mac OSX Cocoa 应用程序,显示... 跟踪这些文件时间: 创建(出生)时间内容创建时间访问时间(atime)上次使用时间(双击文件)添加(到文件夹)修改时间(mtime)更改时间(ctime)元数据更改时间

    高级入侵检测环境AIDE

    AIDE数据库能够保存文件的各种属性,包括 :permisstion、inode number、user、group、file size、mtime、ctime、atime、增加的大小以及连接数。AIDE还能够使用下列算法:sha1、md5、rmd160、tiger,以密文形式建立...

    python删除过期文件的方法

    本文实例讲述了python删除过期文件的方法。分享给大家供大家参考。具体实现方法如下: ...# os.stat(filename) returns (mode, ino, dev, nlink, uid, gid, size, atime, mtime, ctime) # tested with Python24 v

    SQLiteVTable:SQLite虚拟表示例

    有了它,您可以使用SQL搜索文件,如下所示: select ctime, atime, mtime, uid, gid, size / ( 1024 * 1024 ) as ' size (MB) ' , path || ' / ' || name as file from fs where path match ' /usr/lib, /var/log '...

Global site tag (gtag.js) - Google Analytics