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天之内修改过的日志不会进行任何处理
相关推荐
NULL 博文链接:https://hbiao68.iteye.com/blog/2167353
使用方法: 输入python ModifyAMCtime.py 文件名 可以把文件的时间进行修改。可以修改代码,完成atime、ctime、mtime的自定义修改
linux下的find命令提供了相当多的查找条件,功能很强大,由于find的功能很强大,所以他的选项也很多,今天我们来细说一下find命令下的三个时间参数atime,ctime,mtime. atime:access time,最近一次访问时间,当使用...
#golang的文件时间 Go在大多数平台上都具有隐藏的时间功能,此存储库使它们易于访问。 package main import ( "log" "github.com/djherbis/times" ) func main () { t , err := times . Stat ( "myfile" ) if ...
find -name -iname -size -user -atime -ctime -mtime -type -inum -perm -exec(查询结果中直接执行) locate 在数据库中按文件名查找 updatadb 强制更新数据库 grep -i -v -i 忽略大小写 -v 反向选择 4)帮助...
文件大小、mtime、atime、ctime、链接和不断增长的大小。 o 支持的校验和和哈希:SHA1、MD5、RMD160 和 TIGER。 如果编译了 Mhash 支持,则 CRC32、HAVAL 和 GOST。 o 为简单起见,纯文本配置文件和数据库。 o ...
背景 有时候我们需要获取文件的创建时间。 例如: 我在研究 《xtrabackup 原理图》的时候,想通过...他们分别是 ATime、MTime 和 CTime [root@192-168-199-198 backups]# stat 2.txt File: ‘2.txt' Size: 16 Bl
unix系统为每个文件都记录这三个不同的时间,... 备份会改变atime,tar,cpio,dd都会这样做,dump通过原始设备来读取文件系统,因此它不 会改变atime. dump的语法。 dump levelunbdsf blkg-factor density size device-n
-p,--preserve-timestamps:以<来源>文件的访问/修改时间作为相应的目的地文件的时间属性。 -s,--strip:用strip命令删除symbol table,只适用于第一及第二种使用格式。 -S,--suffix=后缀:自行指定...
户组(group)、文件大小、最后修改时间(mtime)、创建时间(ctime)、最后访问时间 (atime)、 增加的大小以及连接数。 AIDE还能够使用下列算法: sha1、 md5、 rmd160、 tiger,以密文形式建立每个文件的校验码或散列。
项目需要,需要写一个函数,能够遍历指定目录中的所有文件,而且这个... define('INDEXFORMAT',dir,name,size,perms,ower,group,ctime,mtime,atime,suffix) ; define('INDEXTXT', 'data/index.txt'); define('INDE
开源项目-djherbis-times.zip,File Times for Go (atime, mtime, ctime, btime)
find 查询路径 -ctime/-mtime/-atime 时间范围 -name 文件名称 -type f -exec rm {} \; --时间单位为分钟 find 查询路径 -cmin/-mmin/-amin 时间范围 -name 文件名称 -type f -exec rm {} \; 1.2 示例: --删除/...
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
文件时间显示 一个 Mac OSX Cocoa 应用程序,显示... 跟踪这些文件时间: 创建(出生)时间内容创建时间访问时间(atime)上次使用时间(双击文件)添加(到文件夹)修改时间(mtime)更改时间(ctime)元数据更改时间
AIDE数据库能够保存文件的各种属性,包括 :permisstion、inode number、user、group、file size、mtime、ctime、atime、增加的大小以及连接数。AIDE还能够使用下列算法:sha1、md5、rmd160、tiger,以密文形式建立...
本文实例讲述了python删除过期文件的方法。分享给大家供大家参考。具体实现方法如下: ...# os.stat(filename) returns (mode, ino, dev, nlink, uid, gid, size, atime, mtime, ctime) # tested with Python24 v
有了它,您可以使用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 '...