Linux基础知识之文件的时间戳及touch的使用(2)

123456789 [root@centos6 test]# touch -a -t 201009200930 file1
[root@centos6 test]# stat file1 
  File: "file1"
  Size: 0              Blocks: 0          IO Block: 4096  普通空文件
Device: 803h/2051d      Inode: 266584      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)  Gid: (    0/    root)
Access: 2010-09-20 09:30:00.000000000 +0800
Modify: 2016-07-28 21:43:53.554651380 +0800
Change: 2016-07-28 21:48:15.589652240 +0800

-a指定为atime -t指定要修改的具体时间 要修改atime,需要两者合用。
  由结果可以看到atime改变了,同时ctime也发生变化,因为修改文件file1的属性信息故只要修改关于时间戳的信息ctime均发生改变,其发生变化的时间即修改时系统当下时间。
下面修改mtime
[root@centos6 test]# touch -m -t 201607180830 file1 
[root@centos6 test]# stat file1 
  File: "file1"
  Size: 0              Blocks: 0          IO Block: 4096  普通空文件
Device: 803h/2051d      Inode: 266584      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)  Gid: (    0/    root)
Access: 2010-09-20 09:30:00.000000000 +0800
Modify: 2016-07-18 08:30:00.000000000 +0800
Change: 2016-07-28 21:51:21.598641893 +0800

mtime发生改变,ctime也发生改变。
  下面我们使用命令cat查看下file1文件
123456789 [root@centos6 test]# cat file1 
[root@centos6 test]# stat file1 
  File: "file1"
  Size: 0              Blocks: 0          IO Block: 4096  普通空文件
Device: 803h/2051d      Inode: 266584      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)  Gid: (    0/    root)
Access: 2016-07-28 21:53:00.418655120 +0800
Modify: 2016-07-18 08:30:00.000000000 +0800
Change: 2016-07-28 21:51:21.598641893 +0800

因为file1文件为空故什么也没显示,不过我们发现atime发生了变化,其变化的时间为当前系统时间。
atime时间发生变化,是因为触发了该文件的读属性。
下面我们在file1文件内添加写内容
[root@centos6 test]# echo www >> file1 
[root@centos6 test]# stat file1 
  File: "file1"
  Size: 4              Blocks: 8          IO Block: 4096  普通文件
Device: 803h/2051d      Inode: 266584      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)  Gid: (    0/    root)
Access: 2016-07-28 21:53:00.418655120 +0800
Modify: 2016-07-28 21:55:22.358651684 +0800
Change: 2016-07-28 21:55:22.358651684 +0800

由结果可知mtime、ctime均发生改变,因为文件数据被修改,数据内容及元数据都发生变化。

时间戳的实际作用
    在实际生产环境中关于时间戳的问题不多,不过有时会因为系统异常导致atime时间比系统时间提前,也就是在系统看来atime是未来的时间,这种情况会导致该文件无法正常读取。这个时候就需要手动刷新下该文件的atime
刷新atime命令
touche -a file

刷新mtime命令
touche -m file

刷新后的file时间自动更新为系统当下时间。

虽然时间戳的作用对于一般管理员来说无关紧要,不过黑客对其却很重视,如何成功入侵系统,并且在功成身退后又不被人发现其入侵的痕迹,合理的修改时间戳还是很关键的。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/15124.html