在本教程中你将会了解到:linux
为何备份?ios
一个备份计划对按期备份文件来讲颇有必要,若是你宁愿选择不备份,那么丢失重要数据的风险会大大增长。有了备份,你就有了从磁盘故障中恢复的能力。备份还能够帮助你抵御:shell
你可使用磁带归档备份整个服务器并将其离线存储。服务器
理解磁带文件标记和块大小工具
每一个磁带设备能存储多个备份文件。磁带备份文件经过 cpio,tar,dd 等命令建立。同时,磁带设备能够由多种程序打开、写入数据、及关闭。你能够存储若干备份(磁带文件)到一个物理磁带上。在每一个磁带文件之间有个“磁带文件标记”。这用来指示一个物理磁带上磁带文件的结尾以及另外一个文件的开始。你须要使用 mt 命令来定位磁带(快进,倒带和标记)。操作系统
磁带上的数据是如何存储的rest
全部的数据使用 tar 以连续磁带存储格式连续地存储。第一个磁带归档会从磁带的物理开始端开始存储(tar #0)。接下来的就是 tar #1,以此类推。教程
Unix 上的磁带设备名接口
磁带设备名示例ci
如何列出已安装的 scsi 磁带设备?
输入下列命令:
### Linux(更多信息参阅 man) ### lsscsi lsscsi -g ### IBM AIX ### lsdev -Cc tape lsdev -Cc adsm lscfg -vl rmt* ### Solaris Unix ### cfgadm –a cfgadm -al luxadm probe iostat -En ### HP-UX Unix ### ioscan Cf ioscan -funC tape ioscan -fnC tape ioscan -kfC tape
mt 命令示例
在 Linux 和类 Unix 系统上,mt 命令用来控制磁带驱动器的操做,好比查看状态或查找磁带上的文件或写入磁带控制标记。下列大多数命令须要做为 root 用户执行。语法以下:
mt -f /tape/device/name operation
设置环境
你能够设置 TAPE shell 变量。这是磁带驱动器的路径名。在 FreeBSD 上默认的(若是变量没有设置,而不是 null)是 /dev/nsa0。能够经过 mt 命令的 -f 参数传递变量覆盖它,就像下面解释的那样。
### 添加到你的 shell 配置文件 ### TAPE=/dev/st1 #Linux TAPE=/dev/rmt/2 #Unix TAPE=/dev/nsa3 #FreeBSD export TAPE
1:显示磁带/驱动器状态
mt status ### Use default mt -f /dev/rmt/0 status ### Unix mt -f /dev/st0 status ### Linux mt -f /dev/nsa0 status ### FreeBSD mt -f /dev/rmt/1 status ### Unix unity 1 也就是 tape device no. 1
你能够像下面同样使用 shell 循环语句遍历一个系统并定位其全部的磁带驱动器:
for d in 0 1 2 3 4 5 do mt -f "/dev/rmt/${d}" status done
2:倒带
mt rew mt rewind mt -f /dev/mt/0 rewind mt -f /dev/st0 rewind
3:弹出磁带
mt off mt offline mt eject mt -f /dev/mt/0 off mt -f /dev/st0 eject
4:擦除磁带(倒带,在支持的状况下卸载磁带)
mt erase mt -f /dev/st0 erase #Linux mt -f /dev/rmt/0 erase #Unix
5:张紧磁带盒
若是磁带在读取时发生错误,你从新张紧磁带,清洁磁带驱动器,像下面这样再试一次:
mt retension mt -f /dev/rmt/1 retension #Unix mt -f /dev/st0 retension #Linux
6:在磁带当前位置写入 EOF 标记
mt eof mt weof mt -f /dev/st0 eof
7:将磁带前进指定的文件标记数目,即跳过指定个 EOF 标记
磁带定位在下一个文件的第一个块,即磁带会定位在下一区域的第一个块(见图01):
mt fsf mt -f /dev/rmt/0 fsf mt -f /dev/rmt/1 fsf 1 #go 1 forward file/tape (see fig.01)
8:将磁带后退指定的文件标记数目,即倒带指定个 EOF 标记
磁带定位在下一个文件的第一个块,即磁带会定位在 EOF 标记以后(见图01):
mt bsf mt -f /dev/rmt/1 bsf mt -f /dev/rmt/1 bsf 1 #go 1 backward file/tape (see fig.01)
这里是磁带定位命令列表:
fsf 前进指定的文件标记数目。磁带定位在下一个文件的第一块。 fsfm 前进指定的文件标记数目。磁带定位在前一文件的最后一块。 bsf 后退指定的文件标记数目。磁带定位在前一文件的最后一块。 bsfm 后退指定的文件标记数目。磁带定位在下一个文件的第一块。 asf 磁带定位在指定文件标记数目的开始位置。定位经过先倒带,再前进指定的文件标记数目来实现。 fsr 前进指定的记录数。 bsr 后退指定的记录数。 fss (SCSI tapes)前进指定的 setmarks。 bss (SCSI tapes)后退指定的 setmarks。
基本备份命令
让咱们来看看备份和恢复命令。
9:备份目录(tar 格式)
tar cvf /dev/rmt/0n /etc tar cvf /dev/st0 /etc
10:恢复目录(tar 格式)
tar xvf /dev/rmt/0n -C /path/to/restore tar xvf /dev/st0 -C /tmp
11:列出或检查磁带内容(tar 格式)
mt -f /dev/st0 rewind; dd if=/dev/st0 of=- ### tar 格式 ### tar tvf {DEVICE} {Directory-FileName} tar tvf /dev/st0 tar tvf /dev/st0 desktop tar tvf /dev/rmt/0 foo > list.txt
12:使用 dump 或 ufsdump 备份分区
### Unix 备份 c0t0d0s2 分区 ### ufsdump 0uf /dev/rmt/0 /dev/rdsk/c0t0d0s2 ### Linux 备份 /home 分区 ### dump 0uf /dev/nst0 /dev/sda5 dump 0uf /dev/nst0 /home ### FreeBSD 备份 /usr 分区 ### dump -0aL -b64 -f /dev/nsa0 /usr
13:使用 ufsrestore 或 restore 恢复分区
### Unix ### ufsrestore xf /dev/rmt/0 ### Unix 交互式恢复 ### ufsrestore if /dev/rmt/0 ### Linux ### restore rf /dev/nst0 ### 从磁带媒介上的第6个备份交互式恢复 ### restore isf 6 /dev/nst0 ### FreeBSD 恢复 ufsdump 格式 ### restore -i -f /dev/nsa0
14:从磁带开头开始写入(见图02)
### 这会覆盖磁带上的全部数据 ### mt -f /dev/st1 rewind ### 备份 home ### tar cvf /dev/st1 /home ### 离线并卸载磁带 ### mt -f /dev/st0 offline
从磁带开头开始恢复:
mt -f /dev/st0 rewind tar xvf /dev/st0 mt -f /dev/st0 offline
15:从最后一个 tar 后开始写入(见图02)
### 这会保留以前写入的数据 ### mt -f /dev/st1 eom ### 备份 home ### tar cvf /dev/st1 /home ### 卸载 ### mt -f /dev/st0 offline
16:从 tar number 2 后开始写入(见图02)
### 在 tar number 2 以后写入(应该是 2+1)### mt -f /dev/st0 asf 3 tar cvf /dev/st0 /usr ### asf 等效于 fsf ### mt -f /dev/sf0 rewind mt -f /dev/st0 fsf 2
从 tar number 2 恢复 tar:
mt -f /dev/st0 asf 3 tar xvf /dev/st0 mt -f /dev/st0 offline
关于第三方备份工具
Linux 和类Unix系统都提供了许多第三方工具,能够用来安排备份,包括磁带备份在内,如:
免费提供最新Linux技术教程书籍,为开源技术爱好者努力作得更多更好:http://www.linuxprobe.com/