免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4601 | 回复: 4
打印 上一主题 下一主题

数据备份与ctime ,atime , mtime的关系 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-10-24 11:03 |只看该作者 |倒序浏览
首先,我们先来看一下ctime ,atime , mtime之间的关系和区别:

atime: access time

mtime: modify time  (timestamp)

ctime: change time

文件的 Access time,atime 是在读取文件或者执行文件时更改的。


文件的 Modified time,mtime 是在写入文件时随文件内容的更改而更改的。


文件的 Create time,ctime 是在写入文件、更改所有者、权限或链接设置时随 Inode 的内容更改而更改的。


mtime 和ctime 的区别在于是更改文件内容,还是更改文件属性。前者是文件内容发生了变化,后者是文件的索引节点发生变化。

如,touch 文件abc.123,看atime, mtime, ctime

#istat abc.123
Inode 1271 on device 10/4       File
Protection: rw-r--r--
Owner: 0(root)          Group: 0(system)
Link count:   1         Length 0 bytes

Last updated:   Mon Jan 02 16:24:44 2006               (ctime)
Last modified:  Mon Jan 02 16:24:44 2006               (mtime)
Last accessed:  Mon Jan 02 16:24:53 2006                (atime)
     
# chmod a+x abc.123

修改文件属性,再看atime, mtime, ctime)。

# istat abc.123
Inode 1271 on device 10/4       File
Protection: rwxr-xr-x
Owner: 0(root)          Group: 0(system)
Link count:   1         Length 0 bytes

Last updated:   Mon Jan 02 16:39:30 2006
Last modified:  Mon Jan 02 16:24:44 2006
Last accessed:  Mon Jan 02 16:24:53 2006
其中ctime发生了变化。

最后修改文件内容

# echo foo >> abc.123
Inode 1271 on device 10/4       File
Protection: rwxr-xr-x
Owner: 0(root)          Group: 0(system)
Link count:   1         Length 4 bytes

Last updated:   Mon Jan 02 16:48:51 2006
Last modified:  Mon Jan 02 16:48:51 2006
Last accessed:  Mon Jan 02 16:24:53 2006

其中mtime, ctime都发生了变化,mtime被更新很容易理解,ctime 被更新也一样可以理解,因为文件内容被修改时,索引节点的length字段也随之变化。

atime: 访问时间是文件最后一次被读取的时间。因此阅读一个文件会更新它的访问时间,如:

# cat abc.123
foo
# istat abc.123
Inode 1271 on device 10/4       File
Protection: rwxr-xr-x
Owner: 0(root)          Group: 0(system)
Link count:   1         Length 4 bytes

Last updated:   Mon Jan 02 16:48:51 2006
Last modified:  Mon Jan 02 16:48:51 2006
Last accessed:  Mon Jan 02 16:55:14 2006

现在我们来看一下数据备份是如何还针对ctime ,atime ,mtime来进行那些数据是需要备份的来进行筛选的。(以NBU为例)

solaris 客户机上的增量式备份查看所有文件和目录,以确定是否要基于参考日期来执行备份(即,备份 date_x 之后已更改的所有文件)。

solaris 文件和目录具有三个关联的时间:

mtime:文件修改时间。每次修改文件时,文件系统都更新文件或目录的

mtime。应用程序可以在修改文件前先保存文件的 mtime。然后,应用程序可以用 utime(2) 系统调用重置该时间。

atime:文件访问时间。每次访问(读或写)文件时,文件系统都会更新文

件或目录的 atime。应用程序可以在访问文件前先保存文件的 atime。然后,应用程序可以用 utime(2) 系统调用重置该时间。

ctime:索引节点更改时间。每次更改文件或目录的索引节点时,都将更新文件或目录的 ctime (例如,根据权限、所有权和链接计数的更改而更改)。

文件或目录的 ctime 无法在更改前保存以及在更改后重置。当重置 mtime 和atime (用 utime(2) 系统调用更改)时,文件或目录的 ctime 也更改。


NBU 读取备份中所包括的文件的数据时不影响文件修改时间,但会影响文件的访问时间。为此, NBU 在读取文件前将保存 atime 和 mtime。然后,

NBU 用 utime(2) 系统调用重置 atime 和 mtime。对于使用文件访问时间(atime) 作为操作条件的存储迁移产品或管理员脚本, NBU 不会引起问题。

尽管这个优点很明显,但副作用是它会更新文件的 ctime。

可以对 NBU 进行配置,使它在读取文件后不重置文件的访问时间。客户可以选择让 NBUp 使用文件的 ctime 和 mtime 来确定增量式备份中包含的

具体文件。通常,这两个选项一起使用,但在某些场所,可能只希望使用其中的一个。默认情况下, NBU只使用文件的 mtime 来确定要备份的文件和目录。

将文件从一个位置移动到另一个位置将更改该文件的 ctime,但 mtime 保持不变。如果 NetBackup 仅使用 mtime 来确定在增量式备份中要备份的文件,则不会

检测这些移动的文件。对于使用 mtime 可能会引起问题的场所,请使用 ctime 来确定要包含在增量式备份中的文件。如果 bp.conf 文件包含

USE_CTIME_FOR_INCREMENTALS 和 DO_NOT_RESET_FILE_ACCESS_TIME 条目,则将使用 ctime。

在将目录从一个位置移动到另一个位置时,该目录的 ctime 将发生变化,但mtime 保持不变。对于已移动的目录中的文件或目录, mtime 和 ctime 都不变。

对于使用文件时间戳的情况,没有可靠的方法能够确定移动目录中要包含在增量式备份中的文件。

在任一种情况下,这些已移动的文件和目录都包括在后续的完全备份中。

感谢:http://blog.chinaunix.net/u/12476/showart_64888.html(关于ctime,atime,mtime前段略的引用)

论坛徽章:
0
2 [报告]
发表于 2008-10-24 12:18 |只看该作者
很好很不错

论坛徽章:
0
3 [报告]
发表于 2008-10-28 17:12 |只看该作者
谢谢,收了~

论坛徽章:
0
4 [报告]
发表于 2008-10-29 09:01 |只看该作者
不错,不过有个问题想了解一下Solaris下一般
没有istat这个命令,这个命令是自己编写的吗,
谢谢

论坛徽章:
0
5 [报告]
发表于 2008-11-13 17:21 |只看该作者
不错,又温习了一遍
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP