UnixLinux_系统自动化管理_第1页
UnixLinux_系统自动化管理_第2页
UnixLinux_系统自动化管理_第3页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Unix/Linux系统自动化管理:数据备份与同步篇程燕,软件工程师,IBM方 正,软件工程师,IBM简介: 本文是Un ix/Li nux 系统管理自动化系列中的一篇,主要讲述如何实现 自动化备份与同步系统数据。查看本系列更多容标记本文!发布日期: 2009年8月20日级别:初级访问情况 726次浏览建议:0 (添加评论)1w W W w W平均分(共1个评分).、八、-刖言数据是Un ix/Li nux 系统中最重要的组成部分,但是数据的备份与同步却是最 容易被忽略的任务。通过定期的数据备份与同步,可以在磁盘出现故障时,最大 程度的降低数据损失。当用户误操作导致数据损坏或者丢失时,可以快速

2、恢复。数据的备份不同于整个系统备份,将不同数据按照优先级分类,根据用户需求, 备份重要文件。从而使数据独立于操作系统,降低备份成本与时间。不同的操作系统可能使用不同的数据备份方式,本文介绍了通用的Un ix/Li nux实用程序(tar和cpio ),标准的AIX实用程序(mksysb和backup),以及 远程备份工具rsync。确定备份策略 在商业环境中,必须首先确定需要备份哪些文件以及备份所消耗的时间。 如果备 份过多的文件,会导致备份系统的成本过于庞大,从而带来不必要的开支。如果 没有备份足够的数据,那么可能导致重要数据的丢失,反而带来更大的损失。当然,备份整个系统是简单易行的,但是通

3、常这样的备份是浪费的且缺乏意义的。 从减少备份系统的成本出发,只有当某些数据足够重要,需要共享,才具有备份 的必要。基本数据一般分为以下几类:?用户数据:所有的用户数据以及用户目录,及私人文件等。?系统信息:系统用户,组,密码,主机列表等。?应用程序:系统上启动的服务,比如 web应用程序,apache等。?应用程序的配置文件与数据:针对不同的应用程序,不同的配置参数和重 要数据文件。?数据库:事实上数据库可以单独提供针对数据库所有数据的备份与同步功简单的数据备份是指一次性备份所有数据,然后再备份上次备份之后所做的修改。 第一次备份是指“完全备份”,后一次备份是“增量备份”。通常适用于个人或

4、者小型。对于机构或者大型来说,需要采用“多级备份”。将完全备份设定为0级,增量备份的级别分别是1,2, 3等。在每个增量备份级别上,可备份同级 或上一级的上次备份以来的变动。比如,如果我们有1 0盘磁带,如果使用简单备份进行日备份,则可恢复两周 的数据。如果使用多级备份,例如:磁带1 - 2,月备份,每月第一个星期五磁带3 6,周备份,每周星期五(排除第一周)磁带7 10,日备份,每周星期一到四,则可以将备份历史扩展到两个月。实用程序和命令tar命令tar命令是通用性较强的Unix/Linux归档命令。tar将一个或多个文件和目录打包为单个文件,并保持原始文件的大小、拥有者、权限、文件类型及其

5、在文件 系统层次结构中的位置。tar是磁带存档程序(tape archive)的首字母缩写,是最易用的数据备份实用程序。表1. tar命令的常用参数:参数含义-c该参数会创建一个新的存档-v该参数会列出每个处理的文件名称-f该参数会指定存档或设备名称-z该参数将用gzip对存档进行压缩或解压-x该参数将从存档文件中提取一个或多个文件要创建/CriticalData的存档文件,使用:# 要恢复该目录,使用:# tar在提取文件和较小的目录方面表现不错,如果要恢复文件系统和卷组,我们更倾向于选用cpio,或是使用专用性更强的Linux/Unix数据备份实用程序。cpio 命令cpio与tar类似,

6、是通用性较强的Unix/Linux 归档命令。一般被用来备份和 恢复文件及目录结构。表2. cpio命令的常用参数:参数-o含义该参数会将数据拷贝到文件或设备中-i该参数会将数据从文件或设备中还原到系统中-v该参数会列出每个处理的文件名称-z该参数会按需要建立目录-x该参数会从标准输入读取文件路径名称,然后将这些文件复制到指定的目录-d该参数会按需要建立目录-p该参数会从标准输入读取文件路径名称,然后将这些文件复制到指定的目录-B该参数会将I/O block增加到5120bytes,默认是512bytes。加快数据备份速度-m该参数会保留时间属性-u该参数自动将较新的文件替换到较旧的文件将/C

7、riticalDate目录和它的所有文件和子目录建立存档,使用:# find /CriticalData/ -depth | cpio -ov > backup.cpio要恢复该目录,使用:# cpio -ivdum <backup.cpio cpio建立起来的归档文件包括文件头和文件数据两部分。文件头包含了对应文 件的信息。如文件的UID,GID,连接数以及文件大小等。其好处是可以保留硬 连接,在恢复时默认情况下保留时间戳,无文件名称长度的限制。mksysb介绍IBM AIX与其它的Unix系统相比,有两个重要的特性:LVM(logical volume manager)和 OD

8、M(object database manager)。一般而言, 用 cpio 或 tar 的 指令亦可以备份 volume groups ,但并不能完全正确的备份完整的系统。利用mksysb来备份时,可制作一个可开 机的磁带,并且可以正常的还原系统的LVM和ODMmksysb备份一般用来在文件中或可启动磁带上创建rootvg 的可安装镜像。如果需要对用户卷组进行备份的话,可使用savevg。mksysb的格式包括:?基本操作系统启动镜像?基本操作系统安装镜像? 虚拟目录(TOC)? rootvg上的实际数据图1. mksysb 的格式Tnpe Driv« BSSOSimegemkm

9、sitapedummy toeddla .Block xi;u=$12加j如贏垃TDummy TOCrootvgDaviee Driwa.inage.dataLdatarnouiil&d Fi 耳 Systemsmki nsttape镜像包括以下重要文件:? Tapeblksz该文件包含运行mksysb前设置的磁带驱动器的块大小。? bos in st.data该文件指定目标系统的需求以及基本操作系统安装程序是怎样运行? image.data该文件包含安装过程中实际安装的镜像的描述数据(文件大 小、名称、装入点等)。表3. mksysb 命令的常用参数:参数含义-e该参数将不备份/et

10、c/exclude.rootvg文件中定义的文件-i该参数将调用mkszfile命令自动生成一个新的image.data 文件-m该参数将调用mkszfile命令生成映射文件在运行 mksysb 前,可以运行 mksysb -i 命令来自动生成一个新的 image.data 文件。虚拟TOC可以确保mksysb磁带中包含的镜像数与基本操作系统安装磁 带中的镜像数相同。最后,rootvg数据包含用mksysb命令备份的实际数据。 它实际上会使用backup命令保存rootvg中所有装入的文件系统的容。如果对用户卷组进行备份的话,可使用下列的命令:# savevg -if /dev/rmtO us

11、ervg其中,-i参数将调用mkvgdata命令;-f参数将数据存储到指定设备或文件中。backup介绍backup是AIX系统提供的一种备份文件和文件系统的方法,其本身就可以支持 增量备份和多级备份,不必借助其它方式,其好处在此不在赘述。表4. backup 命令的常用参数:参数含义-level-i该参数指定备份级别(0 9),默认是9 该参数将按名称备份整个文件系统-f-p该参数将数据备份到指定设备中该参数在归档之前先打包或压缩,且小于2G的文件。适用于不活动的文 件系统-q-u该参数指可移动介质已准备就绪该参数将用文件系统的原始设备名称,时间日期以及备份级别来更新/etc/dumpdat

12、es 文件-v该参数将在backup时显示附加信息将/CriticalDate目录和它的所有文件和子目录备份到指定设备,使用:# find /CriticalDate -depth | backup -i -f /dev/rmtO将-level和-u参数结合,可以进行多级和增量备份:# backup -0 -uf /dev/rmtO /home rsync 介绍如果将数据备份与远程传输结合起来,譬如scp,就可以实现数据的远程备份但通常的备份方法,都无法对本地和远程目录中的容进行同步。rsync ( Remote Sync)是Unix/Linux 系统下一款优秀的数据备份与同步工具。 它可以对

13、文件集进行同步。然而更有价值的是,rsync使用文件的增量,也就是 说,它在网络中仅发送两个文件集合有区别的部分。这样可以占用更少的带宽, 并且速度更快。rsync 的特性:?能够更新整个目录树和文件系统?保持原文件的权限,时间,软硬?安装无需特殊权限?优化的流程,文件传输速率高?可以通过直接的socket连接传输文件,或者选择rsh ,ssh等方式 ?支持匿名传输表5. rsync命令的常用参数:参数含义-a该参数表示以递归方式传输文件,并保持所有文件属性-v该参数显示详细的传输处理-z该参数对备份的文件在传输时进行压缩处理-P该参数将显示备份过程如果在客户端对服务器上的重要数据进行备份的话

14、,可使用下列的命令:清单1. rsync命令演示#rsync avzP rsyn cServer:CriticalData /BackupThis is Critical Data Server recei ving file list .9 files to con siderLocati on/Locatio n/Locati on list197164953 13%1.11MB/S0:08:57706609152 100%1.17MB/s0:09:37 (xfer#1, to-check=5/9)Name/Name144 100%0.16kB/s0:00:00 (xfer#2, to-c

15、heck=3/9)Name/Name222 100%0.08kB/s0:00:00 (xfer#3, to-check=2/9)Time/M on day17 100%0.06kB/s0:00:00 (xfer#4, to-check=0/9)sent 32111 bytes received 497214837 bytes 847820.88 bytes/sectotal size is 706609242 speedup is 1.42首次传输过程进行完全备份,当再次运行该命令时,rsync将只传输数据的增量。 从而完成增量备份。如果在客户端对服务器上的重要数据进行同步的话,可使用下列的命

16、令:# rsync -avzP -delete rsyn cServer:CriticalData /Backup这里调用-delete选项,表示客户端上的数据要与服务器端完全一致,如果/Backup目录中有服务器不存在的文件,则删除。从而保持客户端与服务器的数 据同步。注意:谨慎使用-delete选项,最好不要把已经有重要数所据的目录当做客户端的备份目录,否则会误删除重要数据。如果用客户端的备份数据去恢复服务器,可使用下列的命令:#rsync avzPO /Backup/ rsyn cServer:CriticalData这里需要将 rsync.conf中 read only 设置为 fal

17、se,同时使 /CirticalData目录具有写权限。注意:也可调用-delete选项来保持客户端与服务器端的数据同步。在后面,将详细介绍rsync.conf的配置。-0参数用于忽略目录的时间属性。数据备份与同步的自动化实现系统管理员必须执行的数据备份与同步任务大多牵涉到某种形式的系统配置,当管辖的任务比较庞大,数据量较多,但操作一样且有固定周期时,采用自动化脚 本就成为必然。尤其是为多个操作系统提供支持时。要实现自动化操作,脚本编制是必须掌握的基本技能。一个脚本由一系列命令构 成,这些命令负责执行各种各样的任务。系统管理员在重复执行了几遍类似的命 令后,通常就能准确地掌握要点,并希望利用脚

18、本,将重复性的工作交给计算机 去做。常用的脚本语言有 Shell ,Perl,Tcl/Expect等。实用命令的自动化实现本文的示例主要是通过Shell来实现的。Shell是一种“解释性”语言,列出 了管理员通过键盘敲入的相同命令,并且每次执行一次这样的命令。例如执行一条简单的tar命令,可以使用下面的一个简单的脚本。清单2. tar自动化示例脚本#!/bi n/sh如果我们想用其它的命令来实现数据备份,可以将以上的示例脚本中的命令部分替换掉,例如执行一条简单的cpio命令,可替换为下面一个简单的脚本。清单3. mksysb自动化示例脚本 #!/bi n/sh find /CriticalDa

19、ta/ -depth | cpio -ov > backup.cpio 事实上我们可以通过shell中一些变量设置,条件测试以及流程控制语句来实 现不同的需求。例如,管理员希望能够在周一到周日,通过backup命令做多级 备份。我们可以设置Level变量,当变量满足不同条件时,就可以实现多级备份。清单4. backup自动化示例脚本 #!/bi n/sh /判读当前系统的日期是星期几DATE='date | awk ' printf $1 '、case $DATE inMon) LEVEL=1;Tue) LEVEL=2;Wed) LEVEL=3;Thu) LEVE

20、L=4;Fri) LEVEL=5;Sat) LEVEL=6;Sun) LEVEL=7;esac/备份命令backup -$LEVEL -uf /dev/rmtO /home虽然各种实用程序和命令以及参数各不相同,但 shell自动化脚本的基本思路 是类似的。如果系统管理员需要连续地定期地执行脚本,可以借助Un ix/Li nux系统的cron tab 功能。rsync的自动化实现由于rsync在数据备份与同步上的优秀表现,本文将主要介绍用rsync来实现 数据的备份与同步。要使用rsync,只需要将主服务器安装并配置成为rsync服务器,将另外一台装有rsy nc的机器作为备份客户端。在对rs

21、ync服务器配置结束以后,就可以 在客户端发出rsync命令来实现将服务器端的文件备份到客户端来。在客户端 创建自动化脚本,并启用cron服务,就可以定期对主服务器的数据进行自动备 份与同步。1. 在服务器端手动创建rsync配置文件创建rsyn c.co nf 作为服务器配置文件但不需要备假设我们在服务器端,设置需要备份的目录/CriticalData, 份/CriticalData 目录下的Com mon目录。先创建一个目录,用于存放rsy nc相关配置文件# mkdir /etc/rs yncd仓U建 rsync.conf#touch /etc/rs yn cd/rs yncd.conf

22、编辑 rsyn cd.c onf清单5.rs yn cd.co nf配置文件清单5.rs yn cd.co nf配置文件motd file = /etc/rs yn cd/rs yn cd.motd CriticalData path = /CriticalData list = true ignore errors comme nt =This is Critical Data auth users = rsync secrets file = /etc/rs yn cd/rs yn cd.secrets exclude = Common/rsync.conf中主要分为全局变量和模块两部分。

23、模块用表示,模块之前的为全局变量。重要参数说明:path指定该模块所定义的备份目录的路径,该参数是必须指定的。exclude用来指定多个由空格隔开的多个文件或目录(相对路径),并将其添加到exclude 列表中。这等同于在客户端命令中使用-exclude 参数。一 个模块只能指定一个exclude选项。但是需要注意的一点是该选项有一 定的安全性问题,客户端很有可能绕过exclude列表,如果希望确保特定的文件不能被访问,那就最好结合uid/gid选项一起使用。auth users该选项指定由空格或逗号分隔的用户名列表,只有这些用户才允许连接该模块。这里的用户不一定是客户端存在的用户。如果&qu

24、ot;auth users"被设置,那么客户端发出对该模块的连接请求时,需要对用户身份进行验证。用户的名和密码以明文方式存放在"secrets file"选项指定的文件中。默认情 况下无需密码就可以连接模块(也就是匿名方式)。创建rsyn c.secrets作为用户密码文件#touch /etc/rs yn cd/rs yn cd.secrets #chmod 600 /etc/rs yn cd/rs yn cd.secrets编辑rsyncd.secrets,格式为“用户:密码”rsyn c:passwd注意:rsync是服务器上存在的用户,同时将/Critic

25、alData的使用者改为 rsync#chow n -R rsync /CriticalData/创建rsyn c.motd 作为登录消息文件此文件是选择性配置文件,也可以不创建#touch /etc/rs yn cd/rs yn cd.motd编辑 rsyn cd.c onfThis is Critical Data Server2. 启动 rsync将rsync 启动#/usr/b in/rsync -daem on -con fig=/etc/rs yn cd/rs yncd.conf可以将这个命令写入尼tc/rc.d/rc.local中,当系统启动时,自动运行rsync。3. 创建脚本

26、在客户端创建一个/root/rsync/目录用来存放自动化脚本和其它文件。创建/root/rsync/rsync.sh自动化脚本,保证权限为 755。清单6. rsy nc 自动化示例脚本#!/bi n/shexport RSYNC_PASSWORD=passwdexport PATH=$PATH:/bi n:/usr/bi n:/usr/local/bin/设置远程服务器与需要备份的目录SERVER=rs yn cServerDIR=CriticalData/设置客户端上的用于备份的目录BDIR=/BackupBASE=Curre nt INCREMENTDIR='date +%Y-

27、%m-%d'/在客户端灵活使用exclude功能;设置日志EXCLUDES=/root/rsy nc/excludesLOG=/tmp/rs yn c.logINCREMENTDIR/参数设置,调用backup-dir将服务器端的增量文件存储到目录下OPTS="-avz-force -delete -delete-excluded -exclude-from=$EXCLUDES -b -backup-dir=$BDIR/$INCREMENTDIR -ig nore-errors"/确保客户端上的用于备份的目录存在 in stall -d $BDIR/$BASE/实现

28、数据备份与同步,将日志邮寄给 root用户run_rsyn c() _echo "=Begi n rsyn c: 'date'=" >>$LOG 2>&1 du -s $BDIR/* >>$LOG 2>&1rsync $OPTS $SERVER:$DIR $BDIR/$BASE >>$LOG 2>&1echo "=E nd rsyn c: 'date'=" >>$LOG 2>&1 mail root -s "B

29、ackup Report" < $LOGrm $LOG /条件测试,运行程序if -f $EXCLUDES ; thenif -d $BDIR ; thenrun_rsyncelseecho "cant find $BDIR" exitfielseecho "cant find $EXCLUDES" exit fi执行完rsync.sh 后,可以查看/Backup目录来检查数据的正确性。将 有两种目录,一个是Current目录,用于存放当前服务器端备份和同步 后的数据。在脚本运行过程中,进行增量传输。另外还有一个类似于 2009-06-1

30、6的目录,用于存放已在服务器端删除的增量数据。目录的名 称将根据脚本执行的日期定义。# pwd/Backup# Is2009-06-16 Curre nt4. 启用cron服务,实现定期自动备份如果系统管理员需要连续地定期地执行脚本,那么就需要借助Un ix/Li nux 系统的cron tab 功能,使系统可以定期地调用rsync.sh 脚 本。使用命令“ cron tab -e ”编辑cron tab,添加一条类似于以下的项:0 0 * * * /root/rs yn c/rs yn c.sh 2>& 1>>/root/rs yn c/rs yn c_cro n.log重新启动cron服

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论