Chinaunix首页 | 论坛 | 博客
  • 博客访问: 567335
  • 博文数量: 113
  • 博客积分: 3322
  • 博客等级: 少校
  • 技术积分: 1565
  • 用 户 组: 普通用户
  • 注册时间: 2006-01-04 11:38
文章分类

全部博文(113)

文章存档

2012年(21)

2010年(92)

分类:

2010-03-02 10:45:10

首先,我们先来看一下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 都不变。

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

在任一种情况下,这些已移动的文件和目录都包括在后续的完全备份中。
阅读(2647) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~