32 FreeBSD连载:系统备份( 二 )


n表示非回卷模式,r代表raw方式,代表字符设备 。而sa为磁带设备的驱动程序名 。0表示设备序号,如果有多个磁带,下一个设备将为rsa1 。
一般使用/dev/nrsa0作为备份设备,因为这个设备是非回卷的,那么每次备份之后磁带仍然停留在最后移动的位置上,这样就可以在下次备份时接续往磁带中写入,使用一个磁带进行多次备份 。但是如果读取具体的备份,必须使磁带卷到具体备份的起始位置才行 。需要回卷磁带要使用mt命令来完成 。
# mt /dev/nrsa0 rewind
回卷磁带到最开始地方;
# mt /dev/nrsa0 reten
先向前卷到尾部再回卷磁带,保持磁带前后松紧一致;
# mt /dev/nrsa0 fsf 1
跳到下一个备份文件,使用2将跳到下面第二个文件;因此要定位一个磁带上第4次备份的文件,可以使用reten回卷磁带,再使用fsf 4跳到第4个备份 。
每次使用mt均需使用mt来确定磁带的位置,一般的应用程序并不能自动确定文件的开头,而在磁带上每两个备份文件当中必然有一段无用的数据,如果再读完一个备份之后立即去读取下一个备份文件,就不能识别这些备份文件之间的无用信息,必然导致报告错误 。
使用tar进行备份
选定了备份方式之后,可以使用tar、cpio、dump等备份工具软件将数据备份到磁带上 。对于一般的备份,使用tar就足够了 。tar的参数有:
参数c是创建备份(Create)
参数v表示回显模式(Verbose),将产生一系列所备份的文件列表
参数f指定使用的备份文件,它后面的参数为输出的备份文件名
参数x是展开备份文件
参数t是显示备份文件的内容
参数T后面跟随一个文件参数,指定从这个文件中读取要备份的各个文件的路径
参数z是使用压缩方式创建和解开备份文件,这是GNU的新版tar的功能,需要同时安装gzip
如果不使用T参数,那么就需要一个参数,指明进行备份文件和目录的路径
这些选项参数可以使用Unix下的标准参数符号 “-” 进行引导,如 “-c” 、 “-f” 等,大部分参数都是单独使用的参数,而有些如 “-f” 、 “-T” ,其后面还要跟随一个文件名作参数 。因此可以将单独的参数写在一起,如 “-cv” 就等同于 “-c -v” ,也可以与一个需要参数的选项写在一起,如 “-cvf filenam” 就等同于 “-c -v -f filename”。如果不使用 “-” 引导参数,tar也能识别这些命令选项 。如 “tar tvf filename” 就等同于 “tar -cvf filename”。tar能够创建备份文档,能够备份到磁带上或者产生一个文件,如:
# tar cf root.tar /root
将/root目录下的所有文档备份到root.tar文件中,root.tar指定输出的备份文件,/root指出要做备份的目录 。如果要备份到磁带上,将输出的备份文件指定为磁带设备文件即可:
# tar cf /dev/nrsa0 /root
如果设置了环境变量TAPE,则可以不使用参数f指定输出磁带设备名字 。
# TAPE=/dev/nrsa0; export TAPE
# tar c /root
从备份文档中解出所有文件或某个文件,只需要使用x选项替换前面的c选项,例如从磁带中解出hello.c文件:
tar xv hello.c
列出tar备份文档中的内容,可以使用t选项,tar tv将列出磁带上的所有文件内容,而tar tf root.tar将root.tar文件上的内容列出 。
tar本身不支持文件压缩,因此创建的文件要比较大 。但tar可以和GNU的压缩软件gzip合作,直接生成压缩文件,所需要的是在参数中增加z选项 。压缩的备份文件和普通tar备份是不同的,因此凡是压缩的备份操作,均需使用z参数 。如:
# tar czvf root.tar.gz /root
# tar xzvf root.tar.gz hello.c
# tar tzvf root.tar.gz

推荐阅读