- 论坛徽章:
- 0
|
如何做好Linux磁带机备份
摘要:
首先必须确定在
备份
过程中操作哪些
文件
。在商业环境中,这是非常困难的一个决定,而且会产生严重的影响。如果
备份
了太多数据,会导致
备份
系统的成本过于庞大,会削减其他方面的开支。如果没有
备份
足够的数据,那么重要的数据就可能会丢失。
备份
整个系统非常简单(请确保不要
备份
NFS挂载的一些目录和诸如/proc/之类的特殊
文件
系统),但是通常这样
备份
的内容都太多了。如果整个系统盘上的数据都丢失了,那么在恢复任何数据之前,很可能不得不重新安装基本的操作系统。将这些系统
文件
保存在
备份
磁带上不是毫无意义的。因此,为了减少
备份
系统的成本(包括硬件、网络、系统负载和
备份
时间),通常应该只
备份
重要的
文件
。
共享程序:可以在多个系统中使用的公共程序。/usr/local或/opt目录常在多个系统之间共享,这些目录包含没有随操作系统提供的其他操作系统。
用户数据:包含所有用户数据和私人
文件
的用户主目录。
应用程序数据:在分布式计算环境中,应用程序的数据通常在多个系统之间共享。例如,Web服务器群集通常需要共享相同的内容。
系统信息:系统信息包括账户信息(用户、组和密码)、邮件别名、主机列表等。只有您才知道自己的数据保存在什么地方,在建立自己的
备份
系统之前,至少要好好想一想这个问题。
重要的系统数据:不要忘记重要的系统数据,如/etc/目录中的
文件
,有时是/var/目录中的
文件
。如果这些
文件
都是自动生成的,那么可能只需要在主系统上
备份
这些
文件
。
后来添加的软件:包括系统中安装的任何非原操作系统所提供的软件。您可能已经将这些软件安装到/opt/或/usr/local/目录中了,这样可以简化这些软件的
备份
过程。或者,您也可能将所有这些程序都安装到一个集中的
文件
服务器上,这样会使
备份
过程更加简单。如果系统中安装了一些软件包,要确保保存这些已经安装好的包,并在
备份
过程中包含这些软件包。
应用程序的配置
文件
和数据:要考虑每个系统上正在运行哪些服务。如果一个系统正在运行DNS服务,则确保
备份
时包括区
文件
。如果系统正在运行Web服务,就要
备份
Web内容,有时候甚至要
备份
访问日志(这些日志可能很重要,也可能不重要)。
开发资源:如果有CVS仓库、bug数据库、知识库以及其他保存重要数据的开发工具,则应确保在
备份
中包括这些
文件
。
管理工具:不要忘记在
备份
过程中包括所有的系统自动化脚本和工具。
数据库:如果在一个或多个数据库中保存了一些数据,显然要在
备份
过程中包含这些数据,但是除此之外,还要确保对数据正确地进行
备份
。在很多情况中,为了正确地
备份
数据库的内容,可能需要关闭数据库或将数据进行转储。尽管有些数据库软件可以将数据导出并
备份
为适当的格式,但是有些
备份
软件可以在数据库运行时就对数据库进行
备份
。
用户数据:最后,系统中的用户通常都会非常感激您在
备份
时包括了他们私人的
文件
。如果有一个大型的
文件
服务器,那么这台机器就很适合执行
备份
,根据需要从其他系统中复制数据。
另外一个需要考虑的问题是
备份
过程对时间的要求是什么等级。如果使用磁带
备份
系统,而且只有一个磁带,那么不得不每天替换磁带上的数据。如果有人几天之后才意识到自己误删了一个
文件
,那他们实在是太不幸了。多个磁带即可。但是如果有大量的数据,那么情况就复杂多了。
1.tar命令
tar命令是用来建立,还原
备份
文件
的工具程序,如果您想根据一定的基本原则使用磁带而不是使用硬盘对数据进行
备份
,那么有几种选择。最常用的程序是 tar,大部分UNIX类也都包含这个程序。下面介绍如何使用GNU tar进行一些简单的
备份
。如果只是希望在磁带上
备份
一个系统,这正是它功能强大的地方。也可以使用rsync从几个系统中先复制
文件
,然后使用tar将数据打包到磁带上。
使用tar进行基本的
备份
要使用tar在磁带上创建一个完全
备份
,可以运行下面的命令:
#tar cvpf/dev/st0home
选项c的意思是应该创建一个新的档案;选项v的意思是应该在将
文件
加入档案的同时显示这些
文件
;选项p的意思是所有的权限都应该保留;选项f的意思是档案应该被写入一个
文件
中(/dev/st0,它实际上表示您的磁带驱动器)。
使用tar创建增量
备份
要创建一个简单的增量
备份
,可以使用GNU tar所提供的-N选项,它可以让您指定一个日期,并规定只有在该日期之后被创建或修改过的
文件
才会被包含在档案中。假设每天进行一次
备份
,可以使用
下面的命令进行增量
备份
:
#tar cpf/dev/st0-N"$(date-d''1dayago'')"home
下面这个脚本可以为您执行所有的
备份
:
#!/bin/bash
# Where to place backup log files
LOG_DIR="/usr/local/var/backup_logs"
# Which directories to include in backup
DIRS="home"
# Which output file or tape device to use
DEV="/dev/st0"
today=$(date +%a)
cd /
case $today in
Mon)
# Full backup
tar cvpf $DEV $DIRS
mt -f $DEV rewind
mt -f $DEV offline
;;
Tue Wed Thu Fri)
# Partial backup
tar cvpf $DEV -N "$(date -d ''1 day ago'')" $DIRS
mt -f $DEV rewind
mt -f $DEV offline
;;
*)
# Weekend, do nothing
;;
假设
备份
脚本在每天早晨执行,就可以每天在脚本运行完成之后更换磁带。这样,您总可以今天换上明天用于
备份
的磁带。
磁带的
备份
到现在为止,对于tar的讨论实际上是与
备份
介质完全无关的;tar将磁带当成与磁盘类似的设备来使用(不同之处在于当您使用磁盘时,要指定输出
文件
名,而不是磁带设备)。要将数据
备份
到实际的磁带上还可能出现其他挑战。首先,
备份
数据可能需要跨多个磁带。这可以使用--multi- volume(-M)开关实现:
#tarcpf/dev/st0-Mhome
摘要:
如果 备份 数据要涉及多个磁带,就不能使用--gzip(-z)开关。如果在到达磁带末尾时tar检测到一个错误,就可以使用--tape-length(-L)开关指定磁带的大小(单位是
如果
备份
数据要涉及多个磁带,就不能使用--gzip(-z)开关。如果在到达磁带末尾时tar检测到一个错误,就可以使用--tape-length(-L)开关指定磁带的大小(单位是KB):
#tar cpf/dev/st0-M-L4000000home
在这个例子中,我们指定使用一个4GB的磁带。
从tar包中恢复数据
从磁带上使用tar创建的
备份
包中恢复数据的速度都非常慢。在恢复数据时,不管是否使用增量
备份
,首先要确定的一点是以前的数据在什么时候是完好无损的。然后就可以根据这个时间点选择适当的磁带,并从这个磁带上提取出
文件
。如果需要查看在tar包中包含了哪些
文件
,可以使用t开关。注意这需要读取整个 tar包,如果这个tar包保存在磁带上,其速度就会非常慢。
#tar tvf/dev/st0
可以将整个包在当前目录中展开:
#tarxvpf/dev/st0
也可以只展开特定的
文件
或目录。在下面这个例子中,我们可以只展开一个用户的整个主目录:
#tarxvpf/dev/st0home/user1
或者,我们也可以只展开一个
文件
:
#tarxvpf/dev/st0home/user1/file1
注意,即使只展开一个
文件
,也可能需要处理整个包。同理在磁带驱动器上,这样做的速度也会非常慢。
2.cpio命令
Cpio命令用于复制需要多个磁带卷的
文件
、特殊
文件
或
文件
系统。Cpio的命令参数太多,这里只介相关参数。
将目录中的所有
文件
复制到磁带。步骤如下:
1. 转到包含要复制的
文件
的目录。
2. 将可写磁带插入磁带机中。
3. 将
文件
复制到磁带。使用命令:
$ ls cpio -oc > /dev/st0
参数说明:ls 为 cpio 命令提供
文件
名列表;cpio -oc 指定 cpio 命令应该在复制出模式 (-o) 下操作,并以 ASCII 字符格式 (-c) 写入头信息。这些选项确保可移植到其他供应商的系统。> /dev/stn :指定输出
文件
。
系统会将目录中的所有
文件
复制到指定磁带机中的磁带,同时会覆写该磁带中的任何现有
文件
。屏幕将显示复制的总块数。
应用实例:
将/export/home/目录中的所有
文件
复制到磁带:
$ cd /export/home/kryten
$ ls cpio -oc > /dev/st0
16 blocks
$ cpio -civt -rw-r--r-- 1 root other 0 Jul 28 14:59 2008, filea
-rw-r--r-- 1 root other 0 Jul 28 14:59 2008, fileb
-rw-r--r-- 1 root other 0 Jul 28 14:59 2008, filec
drwxr-xr-x 2 root other 0 Jul 28 14:59 2008, letters
16 blocks
从磁带中恢复所有
文件
(cpio)
如果已使用相对路径名创建了归档
文件
,则恢复
文件
时会在当前目录中以目录形式生成输入
文件
。但是,如果已使用绝对路径名创建了归档
文件
,则将使用相同的绝对路径在系统中重新创建该
文件
。步骤如下:
1. 转到要放置
文件
的目录。
2. 将磁带插入磁带机。
3. 从磁带中提取所有
文件
。 命令如下:
$ cpio -icvd 3. tar 和cpio命令对比
1. mt命令
mt命令用来控制磁带机。可以使用 mt 命令的 status 选项来获取有关磁带机的状态信息。mt 命令可报告配置
文件
/kernel/drv/st.conf 中介绍的所有磁带机的信息。
mt命令格式:mt [ -f device ] command [ count ] ,
mt -f /dev/st0 status 检视磁带机的硬件信息。
mt -f /dev/st0 erase 将磁带机中的磁带进行数据删除动作。
mt -f /dev/st0 rewind 将磁带进行回带动作。
mt -f /dev/st0 offline 将磁带进行回带并由磁带机中退出。
mt–f /dev/st0 unload 将磁带由磁带机中退出。
mt -f /dev/st0 compression off 将硬件压缩功能关闭。
pax命令
对POSIX兼容的系统来说,pax命令提供了比tar或者cpio更好的移植性。当拷贝要求多盘磁带卷的
文件
、特殊
文件
或者
文件
系统或者你想要将
文件
拷进或着拷出POSIX兼容的系统时,都可以使用pax命令。
1.拷贝一个目录中所有的
文件
到磁带上
使用下面的步骤来用pax命令将当前目录下的所有
文件
拷贝到磁带上。
(1)改变到包含想要拷贝的
文件
的目录中。
(2)向磁带驱动器中插入可写磁带。
(3)输入pax -w -f > /dev/st0 并回车。-w选项将当前目录里写的内容写到磁带上。-f选项标识出磁带驱动器。命令最后的据点(.)指明了当前目录。Pax命令在拷贝时并列出拷贝的
文件
。
(4)输入pax -l -f 并回车。-l选项列出了磁带上的
文件
来确认已经拷贝完成的
文件
。
(5)从磁带驱动器中拿出磁带并在磁带标签上写明
文件
名。
下面的例子向驱动器0中磁带上拷贝所有
文件
。
%pax -w -f > /dev/st0
2.恢复磁带上所有的
文件
使用下面的步骤来用pax命令将磁带上所有的
文件
拷贝到当前的目录中。
(1)改变到想要拷贝
文件
的目录中。
(2)向磁带驱动器中插入可写磁带。
(3)输入pax -r -f 并回车。-r选项将磁带上的内容读取到当前目录。-f选项标识磁带驱动器。命令末尾句点(.)指明当前工作目录。Pax命令在拷贝时并不列出拷贝
文件
。
(4)输入ls -l并回车。
Ls -l 命令列出了当前目录下的
文件
及其许可权,以此来验证
文件
拷贝的完成。
(5)从磁带驱动器中拿走磁带并在磁带标签上写下
文件
名。
下面的例子显示了从驱动器0中的磁带上拷贝所有的
文件
。
% pax -r -f /dev/rmt/0
% ls -l
更多的信息参见pax手册。
做好磁带机和存储介质的维护
磁带机和磁带是服务器
备份
的好工具,但是磁带也有些不利因素:
磁带对热和电磁场非常敏感,如果处理不当很容易出错。电磁场由计算机周围的各种常用设备产生,包括UPS 电源、包含电源的外围设备、显示器和扬声器等。
磁带是连续存储设备。为了访问磁带上某个指定的
文件
,必须使磁带卷动到正确的某个点。这对于较老的磁带驱动器常常会出问题。当前的高端驱动器能够在数秒内访问到任意一点。
摘要:
针对以上缺陷应当采取以下措施: 1. 请定期清洁和检查磁带机,以确保其正确操作。请将磁带存储在远离磁性设备的无尘安全位置。 2. 应该创建一个日志
针对以上缺陷应当采取以下措施:
1. 请定期清洁和检查磁带机,以确保其正确操作。请将磁带存储在远离磁性设备的无尘安全位置。
2. 应该创建一个日志并对其进行维护,该日志用于跟踪存储每个作业(
备份
)的介质(磁带卷)和每个
备份
文件
的位置。
3. 注意物理安全。在保存
备份
磁带的位置,应该考虑一般性的物理安全:必须保护磁带免遭偷窃、蓄意破坏以及可能的环境破坏。
4. 正确保存磁带介。一些媒介有特殊的要求,必须加以考虑。比如盒式磁带的磁带卷轴要垂直放置(垂直于地面,就像汽车的轮胎一样),并且与驱动器接触的边朝下(从而重力把磁带拖离磁带轴)。
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/111750/showart_2179204.html |
|