有备无患 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="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” (或是用滑鼠敲一下看起来像磁带的图示)。[!--empirenews.page--]
这样会 “挂载” 磁带 (事实上,因为磁带机是字元装置,事实上无法挂载它 -- 其实 KDat 只是先回带,试着去读取开头资讯,如果成功,找寻磁带机上符合的索引。否则,KDat 会提醒您格式化磁带。
(注意: 如果 KDat 持续反映没有磁带在磁带机但事实上有,您应该确定在参数中指定的磁带机名称正确,在选单栏中用滑鼠敲一下 “Edit” 选项然後选择“User Preferences”.)
一旦 KDat 已经挂载好磁带,在您开始备份前必须选择备份的 profile。当打算开始备份,只要在您要的备份 profile上敲一下右键,然後在“Backup”上敲一下左键。KDat 会先显示一个对话框告诉您有关您所选择备份 profile 的细节 ;在“Ok” 上敲一下左键就会开始备份。
当备份开始进行,KDat 会显示一个有各种状态资讯的对话框 (经过时间,备份大小,备份比率,估计剩馀时间,档案数量及总共写入 bytes 数),以及已经备份档案的列表。一个包含好几 gigabyte 资料的完全备份可能需要花上好几个小时。必要的话,在备份过程中任何时候您可以在“Abort” 钮上敲一下左键放弃备份。
一旦备份完成,您可以在选单栏中选择 “Edit”,再选 “Unmount Tape”以解挂载磁带,或在磁带图示上敲一下,这样磁带会回带然後跳出。
无疑地, 比例行备份更重要的事就是当问题发生後能让重要档案正常回复 !