ufsdump与ufsrestore命令

使用ufsdump和ufsrestore命令

ufsdumo和ufsrestore命令是UNIX文件系统标准的备份恢复应用程序。ufsdump常被设置在夜间的cron任务中,从而减小对服务器系统运行负荷的压力。usfrestore一般在系统崩溃以后单用户模式运行。ufsdump可以在已装载的文件系统上运行,不过,最好首先卸载系统,对文件系统进行检查(使用fsck命令),然后重新装载系统,最后进行备份。

计划进行ufsdump遇到的关键概念是特定备份的级别。备份级别能够确定ufsdump命令进行的完整的还是增量的备份。完整备份由备份级别0表示,而数字1-9会随机分配给增量备份的级别。增量备份中分配备份级别的编号唯一限制是编号之间的关系:日常的增量备份要使用较大的级别编号,每周起始应当使用一个小的编号来指明增量备份过程重新开始。这种备份方法会对所有的文件使用相同的一组磁带,不管文件是那一天记录下来的。例如周一到周六使用备份级别是9,周日要使用备份级别是1。当周一到周六达到循环增量备份完成后,整个过程又会在周日重新开始。

有些机构喜欢将每天的归档内容分别存储在不同的磁带上,这样可以很方便的从增量备份中恢复文件。从增量备份恢复文件时,速度是最重要的,而且是否需要提取特定日期的备份也很重要。例如,一个用户想提取一个曾在周三和周四编辑过的文件的一个版本,而且只需要最新的版本前前的一个版本(周三的版本),这时就可以使用周三的磁带,用ufsdumop命令来提取这个文件。每周的完整备份计划是在周日进行,因为周日使用系统的人比较少。因此周提的备份级别为0,然后周一,周二,周三,周四及周五的备份级别分别是5,6,7,8,9.为了表示一个备份循环的结束,周六应当使用一个比周一小的级别进行编号,可以是1,2,3,4。

在进行ufsdump之前,应当估计一下备份的大小,以决定需要使用多少存储的磁带。通过估计可以根据磁带大小的容量将备份的数据分块。例如,要确定需要多少磁带来备份/dev/rdsk/c0t0d0s4的文件系统,使用如下命令:

# ufsdump s /dev/rdsk/c0t0d0s4

50765536

该分区大概有48MB的数据,因此可以很容易地传送到一盘磁带上,对一个x86分区(/dev/rdsk/c0t0d0s0)进行级别0的完整备份,可以使用如下方法:

# ufsdump 0cu /dev/rmt/0 /dev/rdsk/c0t0d0s0

传送给ufsdump的参数包括0(备份级别),c( 盒式磁带:分块参数126)和u(更新备份记录/etc/dumpdates)。备份记录被ufsdump和ufsrestore用于跟踪每个文件系统最后一次备份的情况。

# cat /etc/dumpdates

ufsdump应用非常灵活,因为它可以与rsh(远程shell)和远程访问验证文件(.rhosts和/etc/hosts.equiv)一起使用,远程登陆到另外一台服务器,将文件备份到远程服务器的备份设备中,不过,这种方法存在的另一个问题是,是用.rhosts文件会使系统很容易受到攻击不过安全shell工具可以帮助消除使用远程命令的需要。混合使用ssh和ufsdump,可以从客户端进行文件的完整备份,然后将备份安全的转移到备份服务器,而后复制到备份服务器的远程设备上。

# ufsdump 0f -/ | ssh server ``dd of=/dev/rmt/0 bs=24b conv=sync``

管理员常用的一个小技巧是使用ufsdump在文件系统中之间移动目录。方法是使用ufsdump对特定文件系统进行操作,然后将结果通过管道输送给ufsrestore,而后传送到目录中,例如:

# mkdir /newstaff

# cd /staff

# ufsdump 0f -/dev/rdsk/c0t0d0s2 | (cd /newstaff; vufsrestore xf -)

使用ufsdump命令备份数据后,使用ufsrestore可以很容易地将这些数据恢复。要想从/dev/rmt/0磁带驱动器中提取数据,可以使用如下命令:

# ufsrestore xf /dev/rmt/0

ufsrestore命令会提取这个磁带卷上的所有文件。不过,也可以只将卷中的内容列表显示至标准输出而不进行提取,这一功能可以用于用户不确定特定磁带中的内容情况:

# ufsrestore tf /dev/rmt/0

代理产品
本月热销产品