- 论坛徽章:
- 0
|
下面是磁盘 IO 来设置禁止写入atime
第一篇
chattr
1.作用
修改ext2和ext3文件系统属性(attribute),使用权限超级用户。
2.格式
chattr [-RV] [-+=AacDdijsSu] [-v version] 文件或目录
3.主要参数
-R:递归处理所有的文件及子目录。
-V:详细显示修改内容,并打印输出。
-:失效属性。
+:激活属性。
= :指定属性。
A:Atime,告诉系统不要修改对这个文件的最后访问时间。
S:Sync,一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘。
a:Append Only,系统只允许在这个文件之后追加数据,不允许任何进程覆盖或截断这个文件。如果目录具有这个属性,系统将只允许在这个目录下建立和修改文件,而不允许删除任何文件。
i:Immutable,系统不允许对这个文件进行任何的修改。如果目录具有这个属性,那么任何的进程只能修改目录之下的文件,不允许建立和删除文件。
D:检查压缩文件中的错误。
d:No dump,在进行文件系统备份时,dump程序将忽略这个文件。
C:Compress,系统以透明的方式压缩这个文件。从这个文件读取时,返回的是解压之后的数据;而向这个文件中写入数据时,数据首先被压缩之后才写入磁盘。
:Secure Delete,让系统在删除这个文件时,使用0填充文件所在的区域。
u:Undelete,当一个应用程序请求删除这个文件,系统会保留其数据块以便以后能够恢复删除这个文件。
4.说明
chattr 命令的作用很大,其中一些功能是由Linux内核版本来支持的,如果Linux内核版本低于2.2,那么许多功能不能实现。同样-D检查压缩文件中的错误的功能,需要2.5.19以上内核才能支持。另外,通过chattr命令修改属性能够提高系统的安全性,但是它并不适合所有的目录。chattr命令不能保护/、/dev、/tmp、/var目录。
第2篇 http://blog.csdn.net/imfinger/archive/2011/04/29/6371713.aspx
linux文件时间(atime,mtime,ctime)辨析 收藏
Linux文件有3个修改时间,很多朋友都喜欢弄混淆,也包括我在内,现在列出来供参考。
1)modification time (mtime,修改时间):这个时间指的是文件内容修改的时间,而不是文件属性的修改,当数据内容修改时,这个时间就会改变,用命令ls -l默认显示的就是这个时间:
2)status time (ctime,状态时间):当一个文件的状态改变时,这个时间就会改变,例如更改了文件的权限与属性等,它就会改变。
3)access time (atime,访问时间):当读取文件内容时,就会更改这个时间,例如使用cat 去读取/etc/man.config,那么该文件的atime就会改变。
例如:
# ls -l –full-time /etc/man.config
-rw-r–r– 1 root root 4522 2007-11-17 18:47:54.000000000 +0800 /etc/man.config
# ls -l –time=atime –full-time /etc/man.config
-rw-r–r– 1 root root 4522 2010-03-15 14:20:20.000000000 +0800 /etc/man.config
# ls -l –time=ctime –full-time /etc/man.config
-rw-r–r– 1 root root 4522 2008-07-11 16:21:55.000000000 +0800 /etc/man.config
———————————————————————————–
#cat /etc/man.config执行之后再查看atime,该时间已经更改
# ls -l –time=atime –full-time /etc/man.config
-rw-r–r– 1 root root 4522 2010-03-15 14:24:30.000000000 +0800 /etc/man.config
更改文件权限:# chmod o-r /etc/man.config
查看ctime,已经更改。
# ls -l –time=ctime –full-time /etc/man.config
-rw-r—– 1 root root 4522 2010-03-15 14:28:34.000000000 +0800 /etc/man.config
如果对文件内容进行编辑,那么mtime就会改变了。
如果要一起查看文件的三个时间情况,可以用命令stat进行查看
# stat /etc/man.config
File: `/etc/man.config’
Size: 4522 Blocks: 24 IO Block: 4096 regular file
Device: 807h/2055d Inode: 1049307 Links: 1
Access: (0640/-rw-r—–) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2010-03-15 14:24:30.000000000 +0800
Modify: 2007-11-17 18:47:54.000000000 +0800
Change: 2010-03-15 14:28:34.000000000 +0800
时间与上面的时间完全吻合。
文件的时间很重要,因为如果误判文件时间,可能会造成某些程序无法正常运行,万一我们发现一个文件的时间是未来的时间(很多时候会有这个问题,我们在安装的时候提到的GMT时间就是那个意思),那么怎样才能让次时间变成现在的时间呢?我们只需要一个touch命令即可。
touch的用法为:
touch [-actmd] 文件
参数:
-a:仅修改access time
-c:仅修改时间而不建立文件
-t:后面可以接时间,格式为:[YYMMDDhhmm]
-m:仅修改mtime
-d:后面可以接日期,也可以使用–date=”日期或时间”
例如:将man.config的日期调整为两天前,则:
#touch -d “2 days ago” /etc/man.config
结果atime和mtime将会改变而ctime不会改变。
通过touch命令,可以轻松的修改文件文件的日期与时间,并且也可以建立一个空文件,不过要注意的是,即使复制一个文件并复制所有属性页没有办法复制ctime属性。
touch命令常用的情况是
1)建立一个空文件
2)将某个文件日期修改为当前日期(mtime和atime) |
|