位置:海鸟网 > IT > linux/Unix >

Linux系统设置备份

错新网讯:备份是一项重要的工作,但是很多人没有去做。一旦由于使用不当造成数据丢失,备份就成了真正的救命者。本文将讨论设置备份的策略和如何选择备份介质,并介绍用于备份的tar和cpio工具。


设置备份策略


设置备份策略和计划可以增加进行备份的可能性。备份开始前,要确定备份哪些数据、备份的频率和使用什么样的介质进行备份。备份的时候,应该进行完全备份。

备份通常安排在空闲时间进行。在大多数系统中,由于此时用户数量最少,所以打开的文件也最少。由于备份要占用一些系统资源,运行备份时用户会发现系统反应迟钝。

如果Linux计算机只有一个使用者,可以一个星期或一个月对整个系统备份一次。如果有关键性的文件,就应该有计划地把这些文件拷贝到一个可移动的磁盘中。

备份之前,首先要确保正确地设置备份设备。大多数磁带备份系统在安装时可以发现是否正确。系统启动后,打开一个终端窗口并且输入下面的命令:

$dmeg | less


滚动列表,并从中寻找你的磁带系统的驱动。如果没有发现,就需要加载一个组件驱动程序。

如果运行Linux服务器,就要制定一个备份计划,但这并不意味着每天要对所有的东西都备份。系统中只有一部分东西需要每天备份,下面列出需要备份的项目:

用户文件 每天都要对/home目录中的用户文件进行备份。

配置文件 /etc和/var目录中的配置文件不需要频繁备份,每个星期或每月备份一次即可,主要取决于配置更改的频繁程度。

程序文件 /usr和/opt目录中的程序文件很少发生变化,安装后做一次备份即可。通常情况下,程序文件可方便地从原始安装盘中恢复。


选择备份介质


把备份存到哪里有多种选择。下面介绍一些可选择的备份介质:

软盘 如果要把重要文件快速备份,或者将其带到家中,这时软盘仍旧是一种可选的备份介质。

光盘写入器 随着光盘写入器变得越来越可靠,价格也越来越低,光盘本身也非常便宜。选用此项的一个好处是光盘不容易被损坏,它备份的可靠性很高。

使用光盘写入器有两点不利因素:它们速度较慢,并且只能保存大约650MB。

可重写的光盘 可重写光盘驱动器比光盘写入器要贵得多,工作方式与其类似。但是,这些光盘是可被重写的,并且它比只能写一次的光盘贵许多。可重写光盘其它的特性都与光盘写入器类似。

Jaz和Zip Zip驱动器很流行,已经成为许多PC机的标准配置,同时它的磁盘和驱动器也都不贵。它一张磁盘可容纳100MB的数据,是一种用于快速、可移动备份的很好选择。

Jaz磁盘可以容纳上G字节的数据,并且使用更先进的技术以获得更好的表现。Jaz驱动器和Jaz磁盘都比较贵。

Jaz和Zip的缺陷是都容易损坏,并且保持时间相对要短。

磁带机 磁带备份设备是大多数Linux服务器的标准配置。磁带是可靠的,并且很少出现错误,它几乎比其它介质存储时间都要长。

对于点对点工作组网络和中型网络,Travan和高端数字音频磁带(DAT)通常是最好的选择。Travan驱动器经过压缩可以处理8GB数据,这对于具有5-10个PC机的小型网络来说足够了。DAT驱动器有更好的表现,可以处理24GB的数据。DAT驱动器比Travan驱动器昂贵,但它磁带的价格要比Travan QIC磁带卷便宜。

高端磁带 选择高端磁带可能是相当贵的。与Travan或DAT相比,这种驱动器有更大的容量和更高的速度。三种广泛使用的驱动器类型是:Sony Advanced Intelliget Tape ( AIT ) 、Quantum Digital Linear Ta p e ( DLT )和Exabyte Mammoth 8mm。它们最少可以容纳20GB的不压缩数据,并且具有更高的数据传输能力。


用于备份的tar


tar工具是以前备份文件的可靠方法,几乎可以工作于任何环境中,Linux老用户一般都信赖它。

Linux中以.tar结尾的文件都是用tar创建的。它的使用超出了单纯的备份,可用来把许多不同文件放到一起组成一个易于分开的文件。tar是从Tape ARchiver备份工具起步的。

包含在Linux中的GNU tar工具简便易用,包含了一个用来压缩的选项,且支持不断增加的备份。

tar是一个命令行的工具,没有图形界面。使用Konsole或Kvt打开一个终端窗口,接下来是一个简单的备份命令:

$tar cvf - /home > /temp/backup.tar


这个命令在/tmp目录中创建一个backup.tar的文件,/home目录中所有内容都包含在其中。

接下来可以把tar文件拷贝到备份磁盘中。使用简单备份时,如果要使用压缩功能,改为下面命令:

$tar czvf - /home > /tmp/backup.tgz


上面扩展名. tgz指出这是一个压缩文件。

下一个例子可以用来直接备份到一个安装好的Jaz驱动器中,但这样做要确定有足够的空间:

$tar czvf /mnt/jaz/backup.tgz - /home


对于一个磁带驱动器,使用设备名称:

$tar czvf /dev/st0/backup.tgz - /home


如果有一个备份非常大,可以使用多卷选项。但是,这样做就不能使用压缩。当第一个磁盘或磁带填满后,tar将提示插入另一张:

$tar cvMf /dev/st0/5mar2000.tar -home


要恢复备份使用下面的命令,以Jaz磁盘为例:

$tar xzvf /mnt/jaz/5mar2000.tgz /home


表1列出了tar主要功能参数。此外还有很多可选参数,本文不再详述。


表1 tar主要功能参数


参数 描述
-A,--catenate,--concatenate 附加到另一个tar存档的后面
-C,--create 创建一个新的tar存档
-d --diff,--compare 找出tar存档和文件间的差别,用于一个文档的验证
--delete 从存档删除文件,磁盘备份不能选用
-r,--append 把文件附加到tar存档的后面
-t,--list 列出tar存档的内容
-u,--update 只把比tar文档中的文件新的文件附加到存档中
-x,--extract,--get 解开一个tar存档


tar备份可以用crontab工具设置成基于时间的有规律地运行。例如,每晚2点把/home目录备份到SCSI磁带驱动器中,只要将下面语句添加到root的crontab中即可:

00 02 * * * tar cvf /dev/st0/homefiles.tar - /home


用于备份的cpio


GNU cpio工具像tar一样从命令提示行启动程序。与tar相比cpio更复杂,但是也更为可靠。因为如果一个tar文件中某处有一个坏块,就不能对备份文件的其它部分进行访问,而使用cpio,只有坏块不能被访问。

cpio创建一个称为copy-out mode的备份,备份存档中包含了文件和所有者、时间及访问许可等信息。cpio需要一个假定要备份的文件列表。创建列表的一个最方便的方法就是使用ls命令。例如,要把/home目录备份到SCSI磁带设备中,输入下面的命令:

$ls /home | cpio -o > /dev/st0


也可以使用find命令。它包括许多选项可以用来消减被存档文件的数量。例如,下面的命令对所有在上一个2 4小时内修改过的文件进行存档:

$find /home -mtime 1 -type f -print | cpio -o > /dev/st0


copy - in模式把文件从备份存档中解出来。下面的命令会恢复前两个备份例子中的所有文件:

$cpio -i < /dev/st0


你也可以对cpio的备份进行计划,用crontab工具设置成基于任何时间的有规律地运行。例如,要在每晚2点把/ home目录备份到SCSI磁带驱动器中,把下面的语句添加到root的crontab文件中即可:

00 02 * * * ls /home | cpio -o > /dev/st0