|
大多数 UNIX® 管理员都有相应的方法来备份 UNIX 计算机中的数据和信息,但对于配置文件和提供计算机运行所需配置数据的其他内容,又应该如何处理呢?本文提供了相关技术的详细信息,这些技术用于针对关键的文件,实现有效和高效的备份系统。 关于本系列 通常,UNIX® 管理员都拥有一套常用的辅助进程管理的关键实用工具、诀窍和系统。本文提供了各种用于简化各个过程的关键实用工具、命令行链和脚本。这些工具中的一部分来自于操作系统,而大部分的诀窍则来源于长期的经验积累和减轻系统管理员的工作压力的要求。本系列文章主要专注于最大限度地利用各种 UNIX 环境中可用的工具,包括简化异类环境中的管理任务的方法。 确定关键的文件 在对 UNIX 系统建立备份时,最重要的是其中包含的数据。无论是数据库、开发源代码文件或其他类型的所谓用户生成的 信息,备份这些数据都是很重要的,它们可以确保在出现故障或其他问题的情况下,您可以恢复这些数据,并重新回到工作中。 然而,系统中存在大量这样的文件和信息,从技术上看它们并不是用户数据,但这些文件可能需要耗费相当长的时间进行重建或者重新配置。例如,重新配置服务器或为您的域重建域名系统 (DNS) 文件需要多长时间? 完全备份,即复制系统中所有的文件,很明显这样做可以保存所有的信息,但这可能是一种代价很大的信息备份方式。您应该能够通过挑选那些配置、生成或支持相关信息和应用程序的特定文件,从而创建有效的备份。 在 UNIX 或 Linux® 系统中,大部分系统配置文件位于 /etc 目录,但是您应该考虑对所有可能的文件(以及可能的位置)进行备份,具体包括: - 主配置目录 (/etc)
- DNS 域信息 (/var/bind)
- NIS/NIS+ 文件和配置 (/var/yp)
- Apache 或其他 Web 服务器配置(/var/apache、/etc/apache 或 /usr/local/apache)
- 邮件文件或文件夹(/var/mail 和 /usr/mail)
- Lightweight Directory Access Protocol (LDAP) 服务器数据(/var/ldap 或 /usr/local/ldap)
- 安全证书
- 自定义内核驱动程序
- 内核配置或构建配置和参数
- 许可密钥和序列号
- 自定义脚本和应用程序
- 用户/root 登录脚本
- 邮件配置;特别是,如果您使用了像 Cyrus Internet Message Access Protocol (IMAP) 这样的解决方案,其中对用户邮件文件夹进行了特殊的记录和索引
其他的文件和信息来源则取决于具体的系统和环境,但是提出这样一份关键配置文件的列表不应该耗费太长的时间,而如果丢失这些信息,将会对您的公司或系统造成极大的影响。 为进行存储而整理数据 尽管直接从数据的源位置对其进行备份非常方便,但是在对其进行备份之前,先将备份数据复制到一个单独的目录将使得您能够更好地选择要复制的文件,并且让您能够更灵活地选择合适的备份方法。如果文件位于同一个位置,那么您可以将其备份到磁带、磁盘,或将这些内容复制到另一台计算机,而无需对源文件进行重新组织。 要对备份到任何目标的文件进行重新配置,只需更改相应的脚本,而该脚本对这些文件进行整理并将其复制到备份准备目录。因为您拥有这些信息的本地的和直接的副本,所以在发生故障时可以快速和轻松地恢复这些数据,并且您依然保留了将这些信息备份到磁带、磁盘或另一个系统的能力。 信息的整理方式非常重要,因为不同的解决方案对应着不同的存储需求、技术和恢复机制。 记录信息的方法 您可以选择各种各样的方法来进行实际的备份和信息存储。显而易见的选择是将文件备份到传统媒介,如磁带。可以将相关信息复制到网络上的另一台计算机,这是一种比较简单的解决方案,但是存在许多优缺点。任何成功的备份解决方案都有一个关键要素,即在另一个位置保存重要信息的副本。无论是另一个物理设备、可移动存储设备或另一台计算机,都是可行的。 从灾难恢复的角度来看,可移动存储设备(磁带、磁盘、甚至 USB)是最可靠的备份,因为可以将所存储的信息保存在现场以外的其他位置。这样做可以在放置计算机的场所遭遇大灾难(如火灾或被盗)时,得以幸免。 使用另一台计算机进行存储则意味着备份数据基本上是联机的和可用的。在这种情况下,恢复备份数据可能非常简单,在发生故障时只需将这些文件复制回您的服务器,或者在发生系统故障时将它们复制到替换系统。 当使用另一台计算机来存储您的备份数据时,最好在本地保存这些文件的多个副本,但是应该在可能的情况下,为这些文件使用直接可用的非现场位置。这台计算机可能是 Internet 上的另一台计算机、您的 WAN 或其他站点上的另一台计算机。这样可以提供必要的冗余和安全性。 使用专业的或商业的备份解决方案,您需要在恢复备份数据之前,重新安装该软件,而在安装该软件之前,可能需要使用某些配置信息和关键文件。 使用 tar 存储备份数据 使用 tar、cpio 或其他的存档文件类型,可能是最直接的信息存储方式。当使用这种方法时,最好注明这些文件的日期,并创建一个简单的备份脚本,专门用来生成指定的文件。另一方面,您还需要一种方法,以便删除不再需要的备份数据(例如,那些超过了特定时间段的备份数据)。 清单 1 显示了一个简单的脚本,该脚本为不同的目录创建了经过 tar 处理和压缩(使用 bzip2)的备份。这些备份文件创建于与远程系统共享的网络文件系统 (NFS),而该远程系统保留了相应的备份副本。 清单 1. 为不同的目录创建经过 tar 处理和压缩的备份
#!/bin/bash
DATE=`date +%Y%m%d.%H%M`
HOST=`hostname`
TEMP=/mnt/backupprepare
echo "Preparing backup..."
cd $TEMP
files=`/usr/local/mcslp/filesbydate.pl notlast5days $HOST*`
if [ -n "$files" ]
then
echo "Deleting old files: $files"
rm $files
fi
cd /etc
tar cf - ./* |bzip2 -9 - >$TEMP/$HOST-etc.$DATE.tar.bz2
cd /var/bind
tar cf - ./* |bzip2 -9 - >$TEMP/$HOST-bind.$DATE.tar.bz2
cd /export/home/webs
tar cf - ./* |bzip2 -9 - >$TEMP/$HOST-webs.$DATE.tar.bz2
cd /etc/apache2
tar cf - ./* |bzip2 -9 - >$TEMP/$HOST-webconfig.$DATE.tar.bz2
使用 date 命令生成 DATE 变量,并创建一个“20060627.2200”或“10PM on 27th of June 2006”形式的文件名。要使得备份脚本具有可移植性,要求创建的所有文件的前缀中包含创建该文件的主机的名称,这样一来就可以很容易地将多台主机的内容备份到相同的位置,并且 TEMP 目录作为每个备份的目标。 使用单独的 Perl 脚本来确定可以对备份准备目录中哪些文件进行删除。稍后将研究这个脚本。在这个脚本中,您可以指定需要保留最近 5 天的文件,换句话说,该脚本将根据备份文件的文件名中的日期说明,选择那些不是最近 5 天内创建的文件。 实际的备份过程是一个简单的 tar 命令,同时还使用了 bzip2 对文件进行压缩。因为生成的文件可能很大,所以您可能需要对这个方法进行改进,以便仅选择那些可能在某个时间段内进行过更改的文件。通过使用 find 命令选择所需的文件(请参见清单 2),您可以达到这个目的。 清单 2. 使用 bzip2 对文件进行压缩的 tar 命令
tar cf - `find . -type f -mtime -1` | bzip2 -9 -
>$TEMP/$HOST-webconfig.$DATE.tar.bz2
您可以在 find 语句中仅指定需要选择的文件,这样可以防止对目录的更改导致将那些没有更改的文件包含到 tar 文件中。这将包含当前目录中的文件,如清单 3 所示。 清单 3. 引用当前目录
$ cd /etc
$ tar cf etc.tar ./*
这样做可以避免显式地指定目录,如清单 4 所示。 清单 4. 避免显式地指定目录
$ tar cf etc.tar /etc
这样可以确保将恢复的文件放到备用的目录,而不是运行中的某个位置。 这个用于删除旧文件的脚本将使用文件名,提取其中嵌入的日期和时间,并确定该文件是否属于指定的界限,例如,在不在特定的天数之内(请参见清单 5)。 Linux联盟收集整理
 |
频道声明:本频道的文章除部分特别声明禁止转载的专稿外,可以自由转载.但请务必注明出出处和原始作者 文章版权归本频道与文章作者所有.对于被频道转载文章的个人和网站,我们表示深深的谢意。
| 原始作者:佚名 |
录入时间:2007-1-2 3:19:20 |
| 信息来源:不详 |
投稿信箱:itqoo@126.com |
|
|
 |
|