介绍 tbackup 备份软体(上) |
---|
在 tar 这最常使用的备份工具之外, 您可知在 Unix/Linux 环境下另外还有 针对磁碟备份而设计的afio/tbackup软体? 本期起曾桑便将详细地介绍这套软体的安装和 实际操作示范、以及如何规划完整性系统备份。 |
---|
曾瑞源(Yuan Tzeng) |
---|
谈 到 备 份 ( Backup) , 一 般 在 Unix/Linux环 境 下 最 常 被 使 用 的 备 份 工 具 就 是 tar, 不 过 tar这 只 程 式 的 设 计 理 念 主 要 是 针 对 磁 带 备 份 , 而 大 部 分 的 Linux机 器 则 可 能 没 有 这 种 机 器 设 备 , 而 只 有 软 式 磁 碟 机 。 本 文 就 要 介 绍 针 对 磁 碟 备 份 而 设 计 的 备 份 软 体 -- afio/tbackup。
本 文 的 介 绍 包 括 软 体 的 取 得 以 及 安 装 , 之 後 , 有 关 实 际 操 作 示 范 部 份 , 笔 者 首 先 做 一 个 简 易 的 备 份 示 范 以 及 资 料 回 复 , 接 着 , 笔 者 将 介 绍 如 何 规 划 完 整 性 系 统 备 份 。 最 後 , 我 们 将 来 看 看 如 何 来 做 累 计 备 份 (Incremental Backup)以 及 选 择 性 资 料 回 复 (Selective Restore)。
tar在 Linux环 境 其 实 也 是 最 方 便 的 备 份 工 具 , 比 方 说 想 备 份 /root目 录 下 所 有 东 西 ( 如 下 示 范 ) , 这 顶 多 一 张 或 两 张 磁 片 就 可 以 全 部 备 份 下 来 , 用 tar可 以 轻 松 愉 快 执 行 。
$ du -s /root <- 得知 /root 大约占用 1500 KByte硬碟空间。 1500 $ tar cvfM /dev/fd0 /root想 浏 览 备 份 起 来 的 内 容 目 录 的 话 , 下 面 这 命 令 可 以 raw data型 态 存 放 到 第 一 部 软 碟 内 的 磁 片 。 这 里 没 有 指 定 压 缩 , 当 一 片 磁 片 无 法 完 成 备 份 时 , 系 统 会 停 下 来 要 求 换 片 。
$ tar tvfM /dev/fd0 /root想 回 复 ( Restore) 备 份 的 话 , 以 下 这 指 令
$ tar xvfM /dev/fd0以 上 tar的 操 作 适 合 小 量 备 份 , 也 就 是 说 假 如 5 MB左 右 的 空 间 或 许 还 适 合 , 但 假 如 想 大 规 模 备 份 的 话 , 您 就 要 考 虑 了 。 首 先 , tar不 支 援 换 片 压 缩 , 用 刚 刚 例 子 来 说 , tar cvfzM /dev/fd0 /root这 指 令 是 无 效 的 , 至 少 截 至 目 前 为 止 的 GNU tar版 本 有 此 限 制 。 另 外 一 点 更 重 要 的 考 量 , 是 tar的 容 错 能 力 太 差 , 假 如 我 们 想 从 20片 备 份 磁 片 做 资 料 回 复 , 万 一 编 号 第 六 张 磁 片 方 生 瑕 疵 , 我 们 很 难 保 证 从 第 六 张 开 始 到 第 二 十 张 磁 片 的 资 料 可 以 正 确 的 回 复 ! 本 文 所 介 绍 的 Tbackup软 体 除 了 没 有 以 上 的 缺 点 之 外 , 更 重 要 的 , 让 您 无 须 记 忆 操 作 指 令 , 就 可 以 进 行 复 杂 性 、 完 整 性 备 份 。
afio及 tbackup软 体 原 始 码 可 以 用 ftp到 nctuccca.edu.tw、 iiiafs.iii.org.tw或 serv.hinet.net等 等 Internet档 案 库 找 到 , 其 存 放 路 径 为 /UNIX/linux/packages/Backup, 档 名 分 别 为 afio.2.4.tgz及 tbackup-0.8.tgz afio.2.4.tgz( 若 版 本 有 更 新 , 档 名 数 字 编 号 会 改 变 ) 。
/usr/bin/afio 备份程式可执行档 /usr/local/src/afio.2.4/INSTALLATION 简易 afio 安装说明 /usr/local/src/afio.2.4/README.afio afio 自我介绍 /usr/local/src/afio.2.4/README.linux Linux 版 afio 更详细介绍 /usr/bin/afio # 安装完成後afio执行档所在位置,我建议读者将位置改为 /usr/local/bin/afio (修改Makefile档案,并重新编译) /usr/man/man1/afio.1 # afio 线上使用手册位置 (用 man afio来阅读) /usr/lib/tbackup/tbackup 备份界面主程式 /usr/lib/tbackup/tdir 备份规划程式 /usr/lib/tbackup/trestore 资料回复程式 /usr/lib/tbackup/examples 一些备份范例 /etc/tbackup/ 备份操作系统设定档案 /usr/lib/tbackup/NEW.0.8 本软体特色介绍及安装说明,本说明甚至包括一般备份哲学。 /usr/lib/tbackup/README 本软体使用说明书,另外README.savetree 则是本说明书的简化版本。我建议读者一定要读以上NEW.0.8 以及README.savetree两个说明档案,笔者这文章的说明, 只算是这两个档案的重点式补充说明。
Part A: 安 装 afio 软 体
$ cd /usr/local/src # 由 /usr/local/src 解压缩 $ tar xvfz afio.2.4.tgz在 解 开 afio.2.4.tgz软 体 , 把 核 心 码 摆 在 /usr/local/src, 解 压 缩 後 会 自 动 产 生 /usr/local/src/afio.2.4目 录 。
$ cd /usr/local/src/afio.2.4 $ make $ make installPart B: 安 装 tbackup 软 体
$ cd / # 由 / 解压缩 tbackup 备份软体 $ tar xvfz /usr/local/src/tbackup-0.8.tgz此 时 , 系 统 会 自 动 产 生 /usr/lib/tbackup目 录 , 本 软 体 之 原 始 码 与 可 执 行 程 式 都 摆 在 这 里 。
$ cd /usr/lib/tbackup $ make读 者 此 处 建 议 修 改 Makefile, 把 BINDIR=/usr/bin改 为 BINDIR=/usr/local/bin, 这 样 系 统 会 把 可 执 行 档 摆 放 在 /usr/local/bin( 以 连 结 档 型 态 存 在 ) , 这 样 对 往 後 系 统 管 理 工 作 , 可 以 轻 松 愉 快 些 。 修 改 後 , 重 新 执 行 $ cd /usr/lib/tbackup; make; make install。
$ make install # 开始安装 tbackup进 行 此 操 作 时 , 系 统 会 显 示 一 连 串 安 装 过 程 的 细 节 , 并 且 会 停 下 来 询 问 您 一 些 问 题 , 我 们 正 确 回 答 後 , 就 算 是 完 成 tbackup的 安 装 动 作 。
由 於 内 定 备 份 媒 体 为 软 碟 机 , 假 若 您 想 用 磁 带 机 备 份 , 可 以 在 安 装 完 成 之 後 , 自 行 修 改 /etc/tbackup/Config档 案 , 把 其 中 export tapedev=none这 一 行 , 把 none改 为 ftape( 若 是 QIC-80磁 带 机 , 改 为 qic, 若 是 SCSI磁 带 机 , 改 为 st0) 。 另 外 , 若 读 者 不 熟 悉 vi编 辑 器 的 使 用 , 可 以 同 样 修 改 这 档 案 , 把 export tdireditor=vi这 一 行 改 为 export tdireditor=pico, 这 样 可 以 使 用 亲 切 好 用 的 pico编 辑 器 。
以 下 就 是 make install的 全 部 过 程 。
/usr/lib/tbackup/tbackup -> /usr/local/bin/tbackup /usr/lib/tbackup/trestore -> /usr/local/bin/trestore /usr/lib/tbackup/tlist -> /usr/local/bin/tlist /usr/lib/tbackup/tguess -> /usr/local/bin/tguess /usr/lib/tbackup/tdir -> /usr/local/bin/tdir /usr/lib/tbackup/README -> /usr/man/cat1/tbackup.1 /usr/lib/tbackup/tdir.man -> /usr/man/cat1/tdir.1 Checking configuration files...... Creating /etc/tbackup. Installing configuration file /etc/tbackup/Config. /usr/lib/tbackup/bin/Config.std -> /etc/tbackup/Config Installing configuration file /etc/tbackup/Compr.ext. /usr/lib/tbackup/bin/Compr.ext.std -> /etc/tbackup/Compr.ext Installing standard .arg files in /etc/tbackup. /usr/lib/tbackup/examples/0d.arg -> /etc/tbackup/0d.arg /usr/lib/tbackup/examples/0h.arg -> /etc/tbackup/0h.arg /usr/lib/tbackup/examples/1d.arg -> /etc/tbackup/1d.arg /usr/lib/tbackup/examples/1h.arg -> /etc/tbackup/1h.arg Creating index file directory /var/root/idx, mode `rwx------'. Making floppy configuration file /etc/tbackup/Floppy. How many floppy drives do you have? (1/2) ---> 回答 1 /usr/lib/tbackup/examples/1h.arg -> /etc/tbackup/1h.arg Is drive number 0 a 5.25" drive or a 3.5" drive ? (5/3) ---> 3 上面停下来询问磁碟机种类,读者请回答3或者5。 Is drive number 0 a high density drive ? (y/n) ---> y 这里我回答y,这是指定一般高密度磁片(1.2MB或1.44MB磁片)。 Extended floppy densities fit more data on a floppy by going outside the `factory specifications' of the floppies and drives. For example, on 3.5" DD floppies, the normal double density format uses 80 tracks and 9 sectors per track, the `extended double density' format uses 82 tracks and 10 sectors per track, which fits 820 Kb. on the floppy. Not all floppies and/or floppy drives are able to go outside their `factory specifications' and hold extra data. Also, due to limitations in the Linux kernel, reading and writing 1.7 Mb. on 3.5" HD floppies is extremely slow. If you want maximal safety, I recommend you never use extended floppy densities. Do you want to disable the extended density option? (y/n) ---> y 这里回答y,则取消特殊高密度的格式化。若回答n,则1.44MB磁片可以被当 成1.62MB来用,笔者建议不要这样做。 Installation done. 安装完成 |
$ tbackup 直接执行tbackup程式 Available choose methods: 1 set -- back up a directory set 2 setrm -- back up a directory set, then remove its contents 3 one -- one user specified file or directory and below Enter method name or number ---> [set] one 键入 one 以上set与one的差异,set适合用在完整系统备份(不论是全部备份 或者累计备份),one则适合单一目录的备份。 Type the name of the file or directory to back up. (e.g. /usr/src) This must be a full pathname starting with / . All subdirectories will also be backed up. Symbolic links are not followed but will be stored as symbolic links. file/directory name ---> /etc 回答 /etc,本测试要把备份 /etc Size in kilobytes: 386 /etc (系统自动测出所需备份量为 386Bytes) 以下选择压缩工具 Available pack methods: 1 afio -- pack files with afio, compress with gzip 2 afio0 -- pack files with afio, do not compress 3 tarcpio -- make a tar archive with cpio (no compress) 4 tar -- pack files with tar (no compress) Enter method name or number ---> [afio] # 这里按Enter键选择afio 以下选择储存媒体 Available write methods: 1 floppy -- write to msdos floppy disks with mtools 2 filedev -- write archive to file or device 3 tape -- write to tape 4 null -- write archive to the bit bucket Enter method name or number ---> [floppy] 按 Enter, 内键媒体是软碟 以下回答 h , 选择高密度磁片 Use double or high density floppies (d/h)---> [d] h Use error correcting codes?---> (y/n) [y] Part size is 1349 Kb. 以下询问,将备份的磁片要不要先行执行格式化(Format)。由於我 使用已经Format过的磁片,这里回答No。 Always format inserted disks?---> (y/n) [n]按Enter选择No,但 是假如磁片尚未经过DOS format过,则回答y。 有关format的方法, 除了在DOS环境下用FORMAT指令外, 也可以在Linux环境下执行$ fdformat /dev/fd0H1440; mformat a:指令。 Verify after write to disk?---> (y/n) [n] y 指定加上一道确认动作 Make a backup index file ---> (y/n) [y] backup index file name---> [/var/root/idx/backup.idx.1] 按Enter [Creating backup progress window.] WARNING: Can't find xterm program. Backup progress to /dev/null. [Creating directory /tmp/bulkdir for temporary storage.] [Allocating disk space for temporary storage of floppy contents.] Backup description: Backup of directory /etc. (Filenames in archive relative to /) Made with tbackup (V0.8) by root@linux2.linux2, on Sun Jan 29 03:42:08 CST 1995 Backup index file is /var/root/idx/backup.idx.1. Backup in progress... 现在一切就绪了,等我们放一张format过的磁片进磁碟机之後即可开 始备份。 --Insert an empty, formatted disk for part 1 in drive 0 and press enter. (Type o for options.) <2>EXT2-fs error (device 3/4): ext2_readdir: bad directory entry: rec_len % 4 != 0 <6>offset=0, inode=789727949, rec_len=42650, name_len=11103 --Insert a blank, unformatted disk for part 1 in drive 0 and press enter. (Type o for options.) Checking if disk is already formatted, please disregard the floppy errors below...... **ERROR**: this disk is already formatted with the correct density! Format anyway? (y/n) ---> y 这里回答y,不确定磁片是否已经格 式化时,不妨这样回答,要省时间的话,可以回答n。以下几行讯息, 我们可以看到系统连续执行格式化以及备份写入磁碟。 Formatting drive 0...... Double-sided, 80 tracks, 18 sec/track. Total capacity 1440 kB. Formatting ... <2>EXT2-fs error (device 3/4): ext2_readdir: bad directory entry: rec_len % 4 != 0 <6>offset=0, inode=2034247905, rec_len=44351, name_len=834 done Verifying ... done Writing part 1 to drive 0 (i interrupts)...... Verify..... Finished writing part 1. Cleaning up... Backup completed. # 备份完成 |
$ trestore 执行trestore程式 Available read methods: 1 floppy -- read from msdos floppy disks with mtools 2 floppypart -- read a part of a floppy archive 3 filedev -- read archive from file or device 4 tape -- read from tape Enter method name or number ---> [floppy] Insert a disk from the backup set in drive 0 and press enter. 系统停下来,等待放进一张磁片 /usr/local/bin/trestore: [: too many arguments Backup description: Backup of directory /usr/local/etc/gopherd-data. (Filenames in archive relative to /usr/local/etc) Made with tbackup (V0.8) by root@linux2.linux2, on Mon Jan 30 15:34:00 CST 1995 Restore parameters of this backup set: dea_choosemethod=one dea_onename=/usr/local/etc/gopherd-data dea_packhome=/usr/local/etc dea_unpackmethod=afio dea_readmethod=floppy pre_mdens=h pre_eccmethod=blexta08 pre_psize=1381376 dea_indexfilename=/var/root/idx/backup.idx.3 Press enter to use this backup set, ^C to abort. 此处又停下来, 我们按Enter键, 继续进行操作 Part size is 1349 Kb. [Creating directory /tmp/bulkdir for temporary storage.] [Space free in /tmp/bulkdir: 37667 Kb.] This archive specifies `afio' as the default unpack method. Available unpack methods: 1 afio -- unpack files with afio, uncompress files with gzip 2 afio0 -- unpack files with afio. (no uncompress) 3 tar -- unpack files with tar (no uncompress) 4 selafio -- selectively unpack files with afio, uncompress with gzip 5 selafio0 -- selectively unpack files with afio. (no uncompress) 6 seltar -- selectively unpack files with tar (no uncompress) Enter method name or number ---> [afio] 按 Enter键 This archive was packed relative to the directory /usr/local/etc. Unpack archive in directory ---> [/usr/local/etc] /tmp 这里回答/tmp目录,目的是要先测试看看,把回复的存档摆在/tmp 目录下,正常的回复是从/目录做起。 Protect newer files from overwriting?---> (y/n) [y] 上面这问题,若回答y(内定),则回复时,新的档案可以避免被备 份里面的旧档案盖过去(这有好有坏)。 Make a restore index file ---> (y/n) [n] [Creating restore progress window.] WARNING: Can't find xterm program. Backup progress to /dev/null. Restore in progress... --Insert the disk with part 1 in drive 0 # 把救原备份磁片插到磁碟机 and press enter. (Type o for options.) Reading part 1 from drive 0.......... Finished reading part 1. [you can remove the floppy] Cleaning up... Restore completed. |
为 了 确 定 有 成 功 回 复 , 我 们 浏 览 一 下 回 复 的 结 果 ( 下 期 待 续 )
( 作 者 E-mail:yuan@UUserv.Net.tw)