电脑技术学习

Linux 网管 123 --- 第8章. 备份及回存程序 -1.伺服器备份程序

dn001


进行一般的备份应该是负责任的系统管理者的最高优先考虑。虽然;Linux;是一个高度可靠的作业系统,
系统失效仍然可能发生。可能因为硬体故障,电源中断,或其他不可预料的问题。;
更常见的这些问题是来自人为的错误,不当的变动,甚至因为删除重要的档案。如果您负责管理系统上的用户,
一定可能常被要求重建因为不小心误删的档案。;

如果您进行一般备份,以每日为基础较好;(至少对更动频繁的使用者档案),您将会有助於减少档案的损失,并
且增加复原程度。;

最安全的备份方法是将他们纪录於不同的媒体中,例如磁带,抽取式硬碟,可写式;cd;.等。;然後将您的备份
和您的;Linux系统分开存放。有时候这可能并不实际;--;也许在您可以存放备份磁带的地方没有防火室;!;或是
在第一优先的地点没有办法存取这样的外部备份系统。虽然如此,仍然可以进行备份,只是会受到一点限制。;

在我服务的单位,我在几个;Linux;系统上进行备份。按情况的不同,有些备份存放在磁带,其他则写入位於网
路上的不同伺服器中,然而有一些仍然使用;cron;自动作业;(可能因为伺服器位在远端,在那里每天进行磁带
备份是不切实际或不可能的),简单的放在分别不同磁碟上的分割区中;(例如,放在;``/archive/'';档案系统);。;

在家里,我没有外部的备份系统,我也没有大量的磁碟空间去存放备份影像档。因此,我改为只备份在;
``/home/'';的我的使用者档案,同样的还有一些在;``/etc/''的自订设定档,将备份存放在分别不同的磁碟
分割区中。;


伺服器备份程序


进行Linux备份有几种不同的方法,其中包括所有;Linux;发行版本中都有的命令列工具,例如;``dd'',
``dump'',;``cpio''以及;``tar''。其他还有文字型态工具,例如;``Amanda'';及;``Taper'',这些是被设计
来在备份及回存过程中加入更友善的使用者介面。当然也有图形介面的工具,像是``KDat''。最後,还有商业
化的备份工具,像是;``BRU'';和;``PerfectBackup+''。这些备份计划中任何之一都足以提供您宝贵资料的保护。;
这里有一些包括哪里可以获得工具的列表,可以在“Linux;Applications;and;Utilities;Page”找到,位於
http://www.xnet.com/~blatura/linapp2.html#back.;当决定好备份方式,您可能要考虑下列几点因素:;

可携性;-;备份的可携性;(亦即.;从一个;Linux;发行版本或应用;Unix备份然後回存到另外一个;;例如从
Solaris;到;Red;Hat;Linux);对您而言是否重要;?;如果是,可能想要选择一个命令列的工具;(亦即.;``dd'',;
``dump'',;``cpio'',;或;``tar''),因为您可以相当地确定该工具可以在另一个;*nix;系统上找到。;
无人或自动备份;-;定期自动进行备份而不需人力介入之能力,对您而言是否重要;?;如果是,您可能需要能支
援该方案的工具及备份媒体。;
使用者友善;-;使用者友善的介面对您而言是否重要;?;如果是,您可能想要选择一个文字或图形介面的工具。商
业的应用程式可以提供最简便的介面及技术支援。;
远端备份;-;从远端机器进行备份及回存的能力对您而言是否重要;?;如果是,您可能想要选择命令列或文字模式的
工具而不是图形介面(除非您有相当快的网路连结及执行远端;X;sessions;的能力)。;
网路备份;-;从网路主机进行备份及回存对您而言是否重要;;?;如果是,您可能要用一些支援从网路存取备份设备的
命令列工具(像是;``tar''),或是专用工具程式例如;``Amanda'';或是一些商业工具程式。;
媒体型态;-;备份可以储存在很多不同的媒体,像是磁带,外接式硬碟,ZIP;磁碟,或可读写;CD。考虑售价及可靠
性,储存容量,及传送速度。;
警告:;当备份您的系统时,;不要包括;``/proc'';伪装档案系统;!;/proc;中的档案并非真的档案,而仅是看起来
像档案的描述,而且指向核心资料结构的连结。备份;``/proc/kcore'';,这事实上这是一个伪装档案,包含记忆
体中所有的资料,会浪费很多的磁带;!;:-);您可能也需要避免备份;``/mnt'';档案系统,除非您有从;CD-ROM,
软碟机,网路分享档案,或其他安装设备上备份的特殊需求。;

明显地,备份及回存的过程会因您所选择的备份方法而有所不同。然而,在这一节,我将会讨论我最常使用的两种
工具备份的方法;:;``tar'';(其名称源於“Tape;ARchiver”),这是一个命令列式的工具,在;*nix;系统中具有很
高的可携性;;;以及;``KDat'',一个来自於;KDE;套件的图形介面磁带备份工具;(参考;第5章,;KDE;的安装及组态;
有更多有关KDE的资讯)。;


最後,我应该补充一点,依您所选择的备份方式,即使该工具没有建立於自动备份时间表上的能力,您仍然可以
利用;cron;功能进行该自动备份。;参考;第9章,使用Cron;和;Crontab;档进行自动作业;有关使用;cron;的细节以
及如何建立;crontab;行程表档案。;

使用;``tar''备份:
如果您选择;``tar'';作为您的备份方案,您可能要花点时间去了解种种的指令选项;;;键入;“man;tar”;有更深
入的明细。您还需要了解如何存取适当的备份媒体;;;虽然在;Unix;的世界中对待所有的装置就像处理档案一样,
如果您写入到一个字元设备像是磁带,“档案”的名称就是设备本身的名称;(亦即.;``/dev/nst0'';是一个;
SCSI介面的磁带机)。;
下面的指令会将您的整个;Linux;系统备份於;``/archive/'';档案系统,除了;``/proc/'';伪装档案系统,
``/mnt/'',;``/archive/'';档案系统;(没必要备份我们的备份档;!),还有;Squid;很大的快取资料档;(是的,
依我之见,浪费备份媒体而且不需要去备份)之外的任何已挂载的档案系统;:;
tar;-zcvpf;/archive/full-backup-`date;'+%d-%B-%Y'`.tar.gz;
--directory;/;--exclude=mnt;--exclude=proc;--exclude=var/spool/squid;.



不要被上面的指令吓到;!;当我们将其分为两部分,您将会发现这个强力工具之美。;

上列的指令指定了选项;``z'';(压缩;;备份资料经由;``gzip''压缩),;``c'';(建立;;一个;archive;档开始被建立),
``v'';(verbose;;显示出已经备份好的档案),;``p'';(允许保存;保护的资料将会被;“记忆”;,可以被回复)。
``f'';(档案);选项後面接的是的要写入的;;archive;档;(或装置)名称,注意包含资料的档名是如何得到的,只
要用两个後引号将``date'';指令圈起来。;一般的命名惯例是在未压缩过的档案後面加上;``;.tar'';,压缩的
档案加上;``tar.gz'';

``--directory'';选项告知;tar;在开始备份前首先跳到以下的档案路径;(;在本例中是``/''目录;)。;``--exclude''
选项告知;tar;不要备份所指定的档案或目录。最後,;``.'';符号告知;tar;要备份目前目录中的所有东西。;
注意:;有一点很重要必须了解的就是;tar;的选项是大小写不同的;!;此外,大部分的选项可以用助记符号加以
简化(亦即.;``f''),;或者使用较易记忆的选项全名;(亦即.;``file'')。;助记符号前用一个``-'';字元作为
字首作为辨识,在全名的前面有两个这种符号的字首。再一次,参考;“man”页以得到更多有关使用;tar;的资
讯。;


另一个例子,这一次只有写入指定的档案系统;(和上一个除了例外全部写入的例子相反);到一台;SCSI;的磁带机;:;
tar;-cvpf;/dev/nst0;--label="Backup;set;created;on;`date;'+%d-%B-%Y'`.";
--directory;/;--exclude=var/spool/;etc;home;usr/local;var/spool



在上面一行的选项,注意没有用到;``z'';(压缩);选项。我强烈建议反对写入压缩资料到磁带上,因为如果磁带上
资料有一部份损坏,您会失去整个备份;!;然而,未压缩的储存的;archive;档具有很高的可恢复性,即使磁带上的
档案有一部份损毁。;

因为磁带机是一个字元设备,没有办法指定一个确实的档名。因此,指定给;tar;的档名可简化为装置名称,;
``/dev/nst0'',是在;SCSI;排汇上的第一个磁带设备。;
注意:;``/dev/nst0'';设备在备份做好後不会回带;;;因此有可能将好几组备份写到同一磁带。(您也可以选择;
``/dev/st0''这个装置,在这种情形磁带在备份完後会自动回带);


既然我们无法对一套备份指定档名,;``--label'';选项可以来写进档案本身一些有关这一套备份的资讯。;

最後,只有包含在;``/etc/'',;``/home/'',;``/usr/local'',;及;``/var/spool/'';(除了;Squid;的;快取资料档)
会写进磁带。;

当使用磁带时,可以使用下列命令回带,以及退出磁带:;
mt;-f;/dev/nst0;rewind
mt;-f;/dev/nst0;offline

小技巧:;您将会发现到当;archive;档建立时,前面的``/'';(斜线);符号会被;tar;去除。这是;tar;的预设操作
模式,;这是故意用来保护您避免覆写这些重要档案的原先版本,以防万一您不慎在重建过程中覆写了不正确的档案。
如果您真的不喜欢这个特性;(记住,这是特性!);您可以指定;tar;``--absolute-paths'';选项,这样会保留前面的
斜线。然而,我不建议这样做,因为很危险;!;


使用``KDat''备份:
如果您使用;KDE;桌面环境,我相信您会发现``KDat'';公用程式不但强大而且对使用者很友善。此外,另一个好处是
KDat;利用``tar'';作为其备份;engine。因此,用;KDat;写入的备份组不但可以用;KDat;读取,也可以用;tar;!;这
使得;KDat;成为在使用者友善及备份可携性中很好的选择。;
小及巧:;即使您决定不使用也不安装完整的;KDE;套件,如果您安装了;Qt;函式馆就仍然可以使用KDE。;

当您第一次执行;KDat,您需要建立一个备份;profile。这个;profile;告诉;KDat;您想要备份系统中的哪些档案。如
果您要的话,您可以建立好几个备份;profile,依照您的需求;(例如,您可以建立一个;profile;叫做“Full;Backup”;
作系统的完全备份,或是;“Quick;Backup”只备份使用者的档案)。;

要建立备份;profile,可以选择从选单栏中“File”选项选择“Create;Backup;Profile”;(或在“Backup;Profiles”
文件夹上按滑鼠右键,然後选择;“Create;Backup;Profile”)。在右手边的是;KDat;视窗,您可以改变各种设定,
像是profile;名称,archive;名称,;tar;选项,;以及其他的。单击;“Help”;选单有关於这些设定的用途说明。;

要指定哪些档案应该包含在您的;backup;profile,;在;``/'';目录文件夹旁的核对图示上敲一下左键。这会确定所有
的档案及这个目录下所有东西都会备份。然後,在文件夹旁的小;``+''符号上敲一下左键,资料夹会展开,显示档案及
以下的目录。您可以排除掉所不想备份的档案;只要在您想排除的每一个档案或目录旁的核对符号上敲一下左键。例如,
一个完全备份应该包含已标记的所有档案及目录,要排除;``/proc'';(一个伪装档案系统,包含您目前运作系统的资料),
``/mnt'';(;位於CD-ROM下面的目录,软碟机,网路分享常被挂载在此),而且如果您是;Squid;使用者,;
``/var/spool/squid'';(Squid的快取资料档)。一旦您选好了合适的档案,在您建立好的备份;profile;上按一下左键,
然後在“Files;>>”;钮上按一下左键将选好的档案移进您的备份;profile。;
注意:;如果您的伺服器资料到巨大到无法实际存放到磁带中,您需要建立分别的备份;profiles,备份组中每部份一个。;


实际进行备份时,将磁带放入,从;“File”;选单中选择;“Mount;Tape”;(或是用滑鼠敲一下看起来像磁带的图示)。
这样会;“挂载”;磁带;(事实上,因为磁带机是字元装置,事实上无法挂载它;--;其实;KDat;只是先回带,试着去读取
开头资讯,如果成功,找寻磁带机上符合的索引。否则,KDat;会提醒您格式化磁带。;
(注意:;如果;KDat;持续反映没有磁带在磁带机但事实上有,您应该确定在参数中指定的磁带机名称正确,在选单栏
中用滑鼠敲一下;“Edit”;选项然後选择“User;Preferences”.);


一旦;KDat;已经挂载好磁带,在您开始备份前必须选择备份的;profile。当打算开始备份,只要在您要的备份;profile
上敲一下右键,然後在“Backup”上敲一下左键。KDat;会先显示一个对话框告诉您有关您所选择备份;profile;的细节
在“Ok”;上敲一下左键就会开始备份。;

当备份开始进行,KDat;会显示一个有各种状态资讯的对话框;(经过时间,备份大小,备份比率,估计剩馀时间,档案数
量及总共写入;bytes;数),以及已经备份档案的列表。一个包含好几;gigabyte;资料的完全备份可能需要花上好几个小时。
必要的话,在备份过程中任何时候您可以在“Abort”;钮上敲一下左键放弃备份。;

一旦备份完成,您可以在选单栏中选择;“Edit”,再选;“Unmount;Tape”以解挂载磁带,或在磁带图示上敲一下,这
样磁带会回带然後跳出

标签: linux