第三步:利用-newer参数进行比较 。我们利用newer 参数来寻找上次备份后所改变的文件主要思路就是备份完成之后,把上面建立的这个零字节文件的修改时间截改为备份完之后的时间 。然后在下次备份的时候,再利用-newer可选项,把查找到的文件的修改时间与这个零字节文件的修改时间(上次备份后的事件)属性来进行比较 。此时find命令只会把那些比这个时间更新的文件查找出来并进行备份 。为此find命令加上touch命令,然后再结合-newer可选项就可以把上次备份后更新了的文件找出来 。所以在书写脚本程序的时候,需要把find命令写在前面 。备份完成所需要的文件之后才能够利用touch命令来修改零字节文件的时间属性 。
2、 利用mtime可选项来实现 。
其实在Unix操作系统的Find命令中,本身就带有一个可选项-mtime 。这个选项就是指在最近某个时段内修改过的文件 。在Find这个可选项之后,系统会比较系统的修改时间与当前的系统时间 。把这个时间差额与mtime可选项指定的时间差额进行比较 。如mtime 1就表示把最近一天(24小时)内更改过的文件全部查找出来 。这也可以达到增量备份的目的,只是其可能不怎么科学 。如可能由于安装了某个重要的外部设备之后,系统工程师手工执行了备份脚本 。而让系统自动进行备份的时候,其查找配置文件的时间参数是最近一天,而不是从上次备份之后,故就会出现重复备份的时候 。不过通常情况下,这不会影响到备份的效率 。为此如果系统工程师不了解NEWER与TOUCH应用的话,那么也可以利用这mtime可选项来完成这个需求 。他们是通用的 。
但是如果备份的数据比较大,如一些大型应用系统的日志文件,则最好采用第一种方式来查找需要备份的文件 。因为此时重复备份几个文件可能会延长备份的时间 。不过如果只是备份Unix操作系统的配置文件,这两种方法都可以使用;而且其备份时间基本上相同 。笔者是比较偏向于采用第一种方法的 。其实只要掌握其实现的原理,在写脚本的时候才用这第一种方式也并没有多大的难度 。
四、显示备份文件的列表 。
有时候系统工程师希望每次备份完成之后操作系统都能够把备份文件的名字保存在一个文件中 。如此当系统工程师向恢复某个配置文件的时候,他就可以查看这些文件,以确定这个文件最近的备份时间以及备份的地点 。另外为了迅速定位这些文件,系统工程师还希望这些保存备份文件信息的文件名字能够以备份的日期命名 。为了实现这个需求,笔者建议大家可以使用下面这个命令来实现 。
【unix中利用Find命令备份根文件系统】find / -mount –mtine 1 –printf | cpio –ov >/backup 2>backuplist_’date %d%b%y’ 。在这个命令中,-ov可选项中的v表示显示每个被备份的文件 。其实-ov是两个可选项,分别为-o与-v 。在Unix操作系统中,如果一个命令中带有多个可选项的话,可以把他们合并在一起写,以节省书写的数量 。为此可以把以上两个可选项写为-ov 。而backuplist_’date %d%b%y’这个文件名字中笔者利用了一些参数,让操作系统自动把备份文件的时间信息放入到文件名中 。如此的话系统工程师一看文件名字就知道在某个时候备份了哪些文件 。这个文件列表会每次备份时都生成一个文件,时间久了可能会有很多个文件 。为此笔者有时候会把这个命名规则改为backuplist_’date %d’ 。如此的话,最多就只有31个文件 。操作系统会每个月循环一次,把旧的文件覆盖掉 。不过这个要慎用 。如果系统工程师不需要以前的备份文件列表的话,那么可以采用这个命名规则 。而且系统工程师还可以缩短这个循环周期,如文件名字中的的时间信息为“星期几 。那么每隔7天操作系统就会覆盖原有的文件 。但是对于配置文件来说,有时候几个月没有更改也是很正常的事情 。为此对于配置文件的备份,则其需要保留所有的备份信息 。此时就必须在文件名字中加入年月日等详细的信息,以防止文件被覆盖 。
推荐阅读
- 什么叫运行中的电气设备
- 密码锁如何修改密码?
- Unix系统中LVM硬盘管理的好帮手
- 滑轨抽屉拆装经验
- 手机京东中追评具体操作方法
- Unix文件安全检查利器- Tripwire
- 深度解析Unix中inode块与超级块
- 中国拜年礼仪有哪些基本规范
- 部落战魂中获得英雄具体操作步骤
- unix口令文件介绍
