如果您进行一般备份,以每日为基础较好 (至少对更动频繁的使用者档案),您将会有助於减少档案的损失,并且增加复原程度。最安全的备份方法是将他们纪录於不同的媒体中,例如磁带,抽取式硬碟,可写式
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套件的图形介面磁带备份工具。
最後,我应该补充一点,依您所选择的备份方式,即使该工具没有建立於自动备份时间表上的能力,您仍然可以利用cron功能进行该自动备份。参考使用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”选单有关於这些设定的用途说明。