您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 系统管理员工具包-备份关键的信息
系统管理员工具包:备份关键的信息简介:大多数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)LightweightDirectoryAccessProtocol(LDAP)服务器数据(/var/ldap或/usr/local/ldap)安全证书自定义内核驱动程序内核配置或构建配置和参数许可密钥和序列号自定义脚本和应用程序用户/root登录脚本邮件配置;特别是,如果您使用了像CyrusInternetMessageAccessProtocol(IMAP)这样的解决方案,其中对用户邮件文件夹进行了特殊的记录和索引其他的文件和信息来源则取决于具体的系统和环境,但是提出这样一份关键配置文件的列表不应该耗费太长的时间,而如果丢失这些信息,将会对您的公司或系统造成极大的影响。为进行存储而整理数据尽管直接从数据的源位置对其进行备份非常方便,但是在对其进行备份之前,先将备份数据复制到一个单独的目录将使得您能够更好地选择要复制的文件,并且让您能够更灵活地选择合适的备份方法。如果文件位于同一个位置,那么您可以将其备份到磁带、磁盘,或将这些内容复制到另一台计算机,而无需对源文件进行重新组织。要对备份到任何目标的文件进行重新配置,只需更改相应的脚本,而该脚本对这些文件进行整理并将其复制到备份准备目录。因为您拥有这些信息的本地的和直接的副本,所以在发生故障时可以快速和轻松地恢复这些数据,并且您依然保留了将这些信息备份到磁带、磁盘或另一个系统的能力。信息的整理方式非常重要,因为不同的解决方案对应着不同的存储需求、技术和恢复机制。记录信息的方法您可以选择各种各样的方法来进行实际的备份和信息存储。显而易见的选择是将文件备份到传统媒介,如磁带。可以将相关信息复制到网络上的另一台计算机,这是一种比较简单的解决方案,但是存在许多优缺点。任何成功的备份解决方案都有一个关键要素,即在另一个位置保存重要信息的副本。无论是另一个物理设备、可移动存储设备或另一台计算机,都是可行的。从灾难恢复的角度来看,可移动存储设备(磁带、磁盘、甚至USB)是最可靠的备份,因为可以将所存储的信息保存在现场以外的其他位置。这样做可以在放置计算机的场所遭遇大灾难(如火灾或被盗)时,得以幸免。使用另一台计算机进行存储则意味着备份数据基本上是联机的和可用的。在这种情况下,恢复备份数据可能非常简单,在发生故障时只需将这些文件复制回您的服务器,或者在发生系统故障时将它们复制到替换系统。当使用另一台计算机来存储您的备份数据时,最好在本地保存这些文件的多个副本,但是应该在可能的情况下,为这些文件使用直接可用的非现场位置。这台计算机可能是Internet上的另一台计算机、您的WAN或其他站点上的另一台计算机。这样可以提供必要的冗余和安全性。使用专业的或商业的备份解决方案,您需要在恢复备份数据之前,重新安装该软件,而在安装该软件之前,可能需要使用某些配置信息和关键文件。使用tar存储备份数据使用tar、cpio或其他的存档文件类型,可能是最直接的信息存储方式。当使用这种方法时,最好注明这些文件的日期,并创建一个简单的备份脚本,专门用来生成指定的文件。另一方面,您还需要一种方法,以便删除不再需要的备份数据(例如,那些超过了特定时间段的备份数据)。清单1显示了一个简单的脚本,该脚本为不同的目录创建了经过tar处理和压缩(使用bzip2)的备份。这些备份文件创建于与远程系统共享的网络文件系统(NFS),而该远程系统保留了相应的备份副本。清单1.为不同的目录创建经过tar处理和压缩的备份#!/bin/bashDATE=`date+%Y%m%d.%H%M`HOST=`hostname`TEMP=/mnt/backupprepareechoPreparingbackup...cd$TEMPfiles=`/usr/local/mcslp/filesbydate.plnotlast5days$HOST*`if[-n$files]thenechoDeletingoldfiles:$filesrm$filesficd/etctarcf-./*|bzip2-9-$TEMP/$HOST-etc.$DATE.tar.bz2cd/var/bindtarcf-./*|bzip2-9-$TEMP/$HOST-bind.$DATE.tar.bz2cd/export/home/webstarcf-./*|bzip2-9-$TEMP/$HOST-webs.$DATE.tar.bz2cd/etc/apache2tarcf-./*|bzip2-9-$TEMP/$HOST-webconfig.$DATE.tar.bz2使用date命令生成DATE变量,并创建一个“20060627.2200”或“10PMon27thofJune2006”形式的文件名。要使得备份脚本具有可移植性,要求创建的所有文件的前缀中包含创建该文件的主机的名称,这样一来就可以很容易地将多台主机的内容备份到相同的位置,并且TEMP目录作为每个备份的目标。使用单独的Perl脚本来确定可以对备份准备目录中哪些文件进行删除。稍后将研究这个脚本。在这个脚本中,您可以指定需要保留最近5天的文件,换句话说,该脚本将根据备份文件的文件名中的日期说明,选择那些不是最近5天内创建的文件。实际的备份过程是一个简单的tar命令,同时还使用了bzip2对文件进行压缩。因为生成的文件可能很大,所以您可能需要对这个方法进行改进,以便仅选择那些可能在某个时间段内进行过更改的文件。通过使用find命令选择所需的文件(请参见清单2),您可以达到这个目的。清单2.使用bzip2对文件进行压缩的tar命令tarcf-`find.-typef-mtime-1`|bzip2-9-$TEMP/$HOST-webconfig.$DATE.tar.bz2您可以在find语句中仅指定需要选择的文件,这样可以防止对目录的更改导致将那些没有更改的文件包含到tar文件中。这将包含当前目录中的文件,如清单3所示。清单3.引用当前目录$cd/etc$tarcfetc.tar./*这样做可以避免显式地指定目录,如清单4所示。清单4.避免显式地指定目录$tarcfetc.tar/etc这样可以确保将恢复的文件放到备用的目录,而不是运行中的某个位置。这个用于删除旧文件的脚本将使用文件名,提取其中嵌入的日期和时间,并确定该文件是否属于指定的界限,例如,在不在特定的天数之内(请参见清单5)。清单5.用于删除旧文件的脚本#!/usr/local/bin/perlmy$choice=shift;my@files=@ARGV;my@selection;if($choice=~/thismonth/){my($day,$mon,$year)=dateaslist();my$match=sprintf('%04d%02d',$year,$mon);foreachmy$file(@files){if($file=~m/$match/&&$choiceeq'thismonth'){push@selection,$file;}elsif($file!~m/$match/&&$choiceeq'notthismonth'){push@selection,$file;}}}elsif($choice=~/today/){my($day,$mon,$year)=dateaslist();my$match=sprintf('%04d%02d%02d',$year,$mon,$day);foreachmy$file(@files){if($file=~m/$match/&&$choiceeq'today'){push@selection,$file;}elsif($file!~m/$match/&&$choiceeq'nottoday'){push@selection,$file;}}}elsif($choice=~/last(\d+)days/){my$days=$1;my($day,$mon,$year)=dateaslist(time()-($1*24*3600));my$match=sprintf('%04d%02d%02d',$year,$mon,$day);my$spec=sprintf('last%ddays',$days);my$notspec=sprintf('notlast%ddays',$days);foreachmy$file(@files){my($date)=($file=~m/(\d{8})/);push@selection,$fileif($date=$match&&$choiceeq$spec);push@selection,$fileif($date$match&&$choiceeq$notspec);}}printjoin'',@selection;subdateaslist{my($time)=@_;$time=time()unlessdefined($time);my($day,$mon,$year)=(localtime($time))[3..5];$mon++;$year+=1900;return($day,$mon,$year);}使用这个脚本,您可以通过各种方法挑选出备份文件(请参见清单6)。清单6.挑选备份文件$filesbydate.pllast5days#Filescreatedinthelast5days$filesbydate.plnotlast14days#Files15daysorolder$filesbydate.plnothismonth#Filesnotcreatedthismonth请记住,比较操作针对于文件名,而不是文件系统的创建或修改日期,所以该脚本可以对头天晚上创建的文件进行操作。使用rsync存储备份数据rsync工具可以在不同的位置或计算机之间复制整个目录结构,它通过使用一种特殊的算法,可以实现仅传输更改过的文件。这使得它成为一种非常高效的复制文件的方法,特别是在不同的计算机之间,这也意味着,备份过程将很快完成
本文标题:系统管理员工具包-备份关键的信息
链接地址:https://www.777doc.com/doc-2102327 .html