有备无患Linux服务器备份和恢复技巧
下面的指令会将您的整个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="Backupsetcreatedon`date'+%d-%B-%Y'`."--directory/--exclude=var/spool/etchomeusr/localvar/spool在上面一行的选项,注意没有用到``z''(压缩)选项。我强烈建议反对写入压缩资料到磁带上,因为如果磁带上资料有一部份损坏,您会失去整个备份!然而,未压缩的储存的archive档具有很高的可恢复性,即使磁带上的档案有一部份损毁。因为磁带机是一个字元设备,没有办法指定一个确实的档名。因此,指定给tar的档名可简化为装置名称,``/dev/nst0'',是在SCSI排汇上的第一个磁带设备。注意:``/dev/nst0''设备在备份做好後不会回带;因此有可能将好几组备份写到同一磁带。(您也可以选择``/dev/st0''这个装置,在这种情形磁带在备份完後会自动回带)既然我们无法对一套备份指定档名,``--label''选项可以来写进档案本身一些有关这一套备份的资讯。最後,只有包含在``/etc/'',``/home/'',``/usr/local'',及``/var/spool/''(除了Squid的快取资料档)会写进磁带。当使用磁带时,可以使用下列命令回带,以及退出磁带:mt-f/dev/nst0rewindmt-f/dev/nst0offline小技巧:您将会发现到当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叫做“FullBackup”作系统的完全备份,或是“QuickBackup”只备份使用者的档案)。要建立备份profile,可以选择从选单栏中“File”选项选择“CreateBackupProfile”(或在“BackupProfiles”文件夹上按滑鼠右键,然後选择“CreateBackupProfile”)。在右手边的是KDat视窗,您可以改变各种设定,像是profile名称,archive名称,tar选项,以及其他的。单击“Help”选单有关於这些设定的用途说明。要指定哪些档案应该包含在您的backupprofile,在``/''目录文件夹旁的核对图示上敲一下左键。这会确定所有的档案及这个目录下所有东西都会备份。然後,在文件夹旁的小``+''符号上敲一下左键,资料夹会展开,显示档案及以下的目录。您可以排除掉所不想备份的档案;只要在您想排除的每一个档案或目录旁的核对符号上敲一下左键。例如,一个完全备份应该包含已标记的所有档案及目录,要排除``/proc''(一个伪装档案系统,包含您目前运作系统的资料),``/mnt''(位於CD-ROM下面的目录,软碟机,网路分享常被挂载在此),而且如果您是Squid使用者,``/var/spool/squid''(Squid的快取资料档)。一旦您选好了合适的档案,在您建立好的备份profile上按一下左键,然後在“Files>>”钮上按一下左键将选好的档案移进您的备份profile。注意:如果您的伺服器资料到巨大到无法实际存放到磁带中,您需要建立分别的备份profiles,备份组中每部份一个。实际进行备份时,将磁带放入,从“File”选单中选择“MountTape”(或是用滑鼠敲一下看起来像磁带的图示)。这样会“挂载”磁带(事实上,因为磁带机是字元装置,事实上无法挂载它--其实KDat只是先回带,试着去读取开头资讯,如果成功,找寻磁带机上符合的索引。否则,KDat会提醒您格式化磁带。(注意:如果KDat持续反映没有磁带在磁带机但事实上有,您应该确定在参数中指定的磁带机名称正确,在选单栏中用滑鼠敲一下“Edit”选项然後选择“UserPreferences”.)一旦KDat已经挂载好磁带,在您开始备份前必须选择备份的profile。当打算开始备份,只要在您要的备份profile上敲一下右键,然後在“Backup”上敲一下左键。KDat会先显示一个对话框告诉您有关您所选择备份profile的细节;在“Ok”上敲一下左键就会开始备份。当备份开始进行,KDat会显示一个有各种状态资讯的对话框(经过时间,备份大小,备份比率,估计剩馀时间,档案数量及总共写入bytes数),以及已经备份档案的列表。一个包含好几gigabyte资料的完全备份可能需要花上好几个小时。必要的话,在备份过程中任何时候您可以在“Abort”钮上敲一下左键放弃备份。一旦备份完成,您可以在选单栏中选择“Edit”,再选“UnmountTape”以解挂载磁带,或在磁带图示上敲一下,这样磁带会回带然後跳出。无疑地,比例行备份更重要的事就是当问题发生後能让重要档案正常回复!