UnixLinux 系统自动化管理 数据备份与同步篇.doc_第1页
UnixLinux 系统自动化管理 数据备份与同步篇.doc_第2页
UnixLinux 系统自动化管理 数据备份与同步篇.doc_第3页
UnixLinux 系统自动化管理 数据备份与同步篇.doc_第4页
UnixLinux 系统自动化管理 数据备份与同步篇.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

Unix/Linux 系统自动化管理: 数据备份与同步篇程 燕, 软件工程师, IBM程燕,IBM 中国软件开发中心 HPC 部门的软件工程师,主要从事集群系统管理软件的相关研发工作。方 正, 软件工程师, IBM方正, IBM 中国软件开发中心 HPC 部门的软件工程师,主要从事集群系统管理软件的相关研发工作。简介:本文是 Unix/Linux 系统管理自动化系列中的一篇,主要讲述如何实现自动化备份与同步系统数据。查看本系列更多内容标记本文!发布日期:2009 年 8 月 20 日 级别:初级 访问情况726 次浏览 建议:0(添加评论) 平均分 (共 1 个评分 )前言数据是 Unix/Linux 系统中最重要的组成部分 , 但是数据的备份与同步却是最容易被忽略的任务。通过定期的数据备份与同步,可以在磁盘出现故障时,最大程度的降低数据损失。当用户误操作导致数据损坏或者丢失时,可以快速恢复。数据的备份不同于整个系统备份,将不同数据按照优先级分类,根据用户需求,备份重要文件。从而使数据独立于操作系统,降低备份成本与时间。不同的操作系统可能使用不同的数据备份方式,本文介绍了通用的 Unix/Linux 实用程序(tar 和 cpio),标准的 AIX 实用程序 (mksysb 和 backup),以及远程备份工具 rsync。确定备份策略在商业环境中,必须首先确定需要备份哪些文件以及备份所消耗的时间。如果备份过多的文件,会导致备份系统的成本过于庞大,从而带来不必要的开支。如果没有备份足够的数据,那么可能导致重要数据的丢失,反而带来更大的损失。当然,备份整个系统是简单易行的,但是通常这样的备份是浪费的且缺乏意义的。从减少备份系统的成本出发,只有当某些数据足够重要,需要共享,才具有备份的必要。基本数据一般分为以下几类: 用户数据:所有的用户数据以及用户目录,及私人文件等。 系统信息:系统用户,组,密码,主机列表等。 应用程序:系统上启动的服务,比如 web 应用程序,apache 等。 应用程序的配置文件与数据:针对不同的应用程序,不同的配置参数和重要数据文件。 数据库:事实上数据库可以单独提供针对数据库所有数据的备份与同步功能。 简单的数据备份是指一次性备份所有数据,然后再备份上次备份之后所做的修改。第一次备份是指“完全备份”,后一次备份是“增量备份”。通常适用于个人或者小型网站。对于机构或者大型网站来说,需要采用“多级备份”。将完全备份设定为 0 级,增量备份的级别分别是 1,2,3 等。在每个增量备份级别上,可备份同级或上一级的上次备份以来的变动。比如,如果我们有 1 0 盘磁带,如果使用简单备份进行日备份,则可恢复两周内的数据。如果使用多级备份,例如:磁带 12, 月备份,每月第一个星期五磁带 36, 周备份,每周星期五(排除第一周)磁带 710,日备份,每周星期一到四,则可以将备份历史扩展到两个月。实用程序和命令tar 命令tar 命令是通用性较强的 Unix/Linux 归档命令。tar 将一个或多个文件和目录打包为单个文件,并保持原始文件的大小、拥有者、权限、文件类型及其在文件系统层次结构中的位置。tar 是磁带存档程序 (tape archive) 的首字母缩写,是最易用的数据备份实用程序。表 1. tar 命令的常用参数:参数 含义 -c 该参数会创建一个新的存档 -v 该参数会列出每个处理的文件名称 -f 该参数会指定存档或设备名称 -z 该参数将用 gzip 对存档进行压缩或解压 -x 该参数将从存档文件中提取一个或多个文件 要创建 /CriticalData 的存档文件,使用: # tar -czvf backup.tar.gz /CriticalData/ 要恢复该目录,使用: # tar -xzvf backup.tar.gz /CriticalData/ tar 在提取文件和较小的目录方面表现不错,如果要恢复文件系统和卷组,我们更倾向于选用 cpio, 或是使用专用性更强的 Linux/Unix 数据备份实用程序。cpio 命令cpio 与 tar 类似,是通用性较强的 Unix/Linux 归档命令。一般被用来备份和恢复文件及目录结构。表 2. cpio 命令的常用参数:参数 含义 -o 该参数会将数据拷贝到文件或设备中 -i 该参数会将数据从文件或设备中还原到系统中 -v 该参数会列出每个处理的文件名称 -z 该参数会按需要建立目录 -x 该参数会从标准输入读取文件路径名称,然后将这些文件复制到指定的目录 -d 该参数会按需要建立目录 -p 该参数会从标准输入读取文件路径名称,然后将这些文件复制到指定的目录 -B 该参数会将 I/O block 增加到 5120bytes,默认是 512bytes。加快数据备份速度 -m 该参数会保留时间属性 -u 该参数自动将较新的文件替换到较旧的文件 将 /CriticalDate 目录和它的所有文件和子目录建立存档,使用: # find /CriticalData/ -depth | cpio -ov backup.cpio 要恢复该目录,使用: # cpio -ivdum backup.cpio 事实上我们可以通过 shell 中一些变量设置,条件测试以及流程控制语句来实现不同的需求。例如,管理员希望能够在周一到周日,通过 backup 命令做多级备份。我们可以设置 Level 变量,当变量满足不同条件时,就可以实现多级备份。清单 4. backup 自动化示例脚本 #!/bin/sh / 判读当前系统的日期是星期几 DATE=date | awk printf $1 case $DATE in Mon) LEVEL=1; Tue) LEVEL=2; Wed) LEVEL=3; Thu) LEVEL=4; Fri) LEVEL=5; Sat) LEVEL=6; Sun) LEVEL=7; esac / 备份命令 backup -$LEVEL -uf /dev/rmt0 /home 虽然各种实用程序和命令以及参数各不相同,但 shell 自动化脚本的基本思路是类似的。如果系统管理员需要连续地定期地执行脚本,可以借助 Unix/Linux 系统的 crontab 功能。rsync 的自动化实现由于 rsync 在数据备份与同步上的优秀表现,本文将主要介绍用 rsync 来实现数据的备份与同步。要使用 rsync,只需要将主服务器安装并配置成为 rsync 服务器,将另外一台装有 rsync 的机器作为备份客户端。在对 rsync 服务器配置结束以后,就可以在客户端发出 rsync 命令来实现将服务器端的文件备份到客户端来。在客户端创建自动化脚本,并启用 cron 服务,就可以定期对主服务器的数据进行自动备份与同步。1. 在服务器端手动创建 rsync 配置文件 创建 rsync.conf 作为服务器配置文件假设我们在服务器端,设置需要备份的目录 /CriticalData, 但不需要备份 /CriticalData 目录下的 Common 目录。先创建一个目录,用于存放 rsync 相关配置文件 # mkdir /etc/rsyncd 创建 rsync.conf #touch /etc/rsyncd/rsyncd.conf 编辑 rsyncd.conf清单 5.rsyncd.conf 配置文件清单 5.rsyncd.conf 配置文件 gid = users read only = trueuse chroot = truetransfer logging = truelog format = %h %o %f %l %blog file = /var/log/rsyncd.logpid file = /var/run/rsyncd.pidsecrets file = /etc/rsyncd.secretshosts allow = 192.168.0.0/255.255.255.0max connections = 5timeout = 300motd file = /etc/rsyncd/rsyncd.motdCriticalDatapath = /CriticalData list = trueignore errors comment =This is Critical Dataauth users = rsync secrets file = /etc/rsyncd/rsyncd.secretsexclude = Common/ rsync.conf 中主要分为全局变量和模块两部分。模块用 表示,模块之前的为全局变量。重要参数说明:path指定该模块所定义的备份目录的路径,该参数是必须指定的。exclude用来指定多个由空格隔开的多个文件或目录 ( 相对路径 ),并将其添加到 exclude 列表中。这等同于在客户端命令中使用 -exclude 参数。一个模块只能指定一个 exclude 选项。但是需要注意的一点是该选项有一定的安全性问题,客户端很有可能绕过 exclude 列表,如果希望确保特定的文件不能被访问,那就最好结合 uid/gid 选项一起使用。auth users该选项指定由空格或逗号分隔的用户名列表,只有这些用户才允许连接该模块。这里的用户不一定是客户端存在的用户。如果auth users被设置,那么客户端发出对该模块的连接请求时,需要对用户身份进行验证。用户的名和密码以明文方式存放在secrets file选项指定的文件中。默认情况下无需密码就可以连接模块 ( 也就是匿名方式 )。创建 rsync.secrets 作为用户密码文件 #touch /etc/rsyncd/rsyncd.secrets #chmod 600 /etc/rsyncd/rsyncd.secrets 编辑 rsyncd.secrets, 格式为“用户 : 密码” rsync:passwd 注意:rsync是服务器上存在的用户,同时将/CriticalData的使用者改为rsync #chown -R rsync /CriticalData/ 创建 rsync.motd 作为登录消息文件此文件是选择性配置文件,也可以不创建。 #touch /etc/rsyncd/rsyncd.motd 编辑 rsyncd.conf =This is Critical Data Server= 2. 启动 rsync 将 rsync 启动 #/usr/bin/rsync -daemon -config=/etc/rsyncd/rsyncd.conf 可以将这个命令写入 /etc/rc.d/rc.local 中,当系统启动时,自动运行 rsync。3. 创建脚本 在客户端创建一个 /root/rsync/ 目录用来存放自动化脚本和其它文件。创建 /root/rsync/rsync.sh 自动化脚本,保证权限为 755。清单 6. rsync 自动化示例脚本 #!/bin/sh export RSYNC_PASSWORD=passwd export PATH=$PATH:/bin:/usr/bin:/usr/local/bin / 设置远程服务器与需要备份的目录 SERVER=rsyncServer DIR=CriticalData / 设置客户端上的用于备份的目录 BDIR=/Backup BASE=Current INCREMENTDIR=date +%Y-%m-%d / 在客户端灵活使用 exclude 功能;设置日志 EXCLUDES=/root/rsync/excludes LOG=/tmp/rsync.log / 参数设置,调用 backup-dir 将服务器端的增量文件存储到 INCREMENTDIR 目录下 OPTS=-avz-force -delete -delete-excluded -exclude-from=$EXCLUDES -b -backup-dir=$BDIR/$INCREMENTDIR -ignore-errors / 确保客户端上的用于备份的目录存在 install -d $BDIR/$BASE / 实现数据备份与同步,将日志邮寄给 root 用户 run_rsync() echo =Begin rsync: date= $LOG 2&1 du -s $BDIR/* $LOG 2&1 rsync $OPTS $SERVER:$DIR $BDIR/$BASE $LOG 2&1 echo =End rsync: date= $LOG 2&1 mail root -s Backup Report &1/root/rsync/rsync_cron.log 重新启动 cron 服务,并用“crontab l” 查看任务是否添加成功。也可以定期查看 /root/rsync/rsync_cron.log 来监控 cron 服务的运行情况。5. 监控脚本的执行过程 如果配置正确 , rysnc.sh 的执行过程将会邮寄给 root 用户,通过 mail 命令可读取这些邮件。清单 7. 使用 mail 命令读取监控输出# mailMail version 8.1 6/6/93. Type ? for help./var/spool/mail/root: 1 message 1 newN 1 rootcdlf2ler02.clus Tue Jun 16 16:53 32/1050 Backup Report& 敲入回车,可显示具体的邮件内容。类似于:清单 8. 邮件内容 Mes

温馨提示

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

评论

0/150

提交评论