Unix/Linux 系统自动化管理: 数据备份与同步篇(2)

来源:developerWorks 中国 作者:程 燕
  
  • bosinst.data 该文件指定目标系统的需求以及基本操作系统安装程序是怎样运行
  • image.data 该文件包含安装过程中实际安装的镜像的描述数据(文件大小、名称、装入点等)。
  • 表 3. mksysb 命令的常用参数:

    参数 含义
    -e 该参数将不备份 /etc/exclude.rootvg 文件中定义的文件
    -i 该参数将调用 mkszfile 命令自动生成一个新的 image.data 文件
    -m 该参数将调用 mkszfile 命令生成映射文件

    在运行 mksysb 前,可以运行 mksysb -i 命令来自动生成一个新的 image.data 文件。虚拟 TOC 可以确保 mksysb 磁带中包含的镜像数与基本操作系统安装磁带中的镜像数相同。最后,rootvg 数据包含用 mksysb 命令备份的实际数据。它实际上会使用 backup 命令保存 rootvg 中所有装入的文件系统的内容。

    如果对用户卷组进行备份的话,可使用下列的命令:

     # savevg -if /dev/rmt0 uservg 
    

    其中,-i 参数将调用 mkvgdata 命令;-f 参数将数据存储到指定设备或文件中。

    backup 介绍

    backup 是 AIX 系统提供的一种备份文件和文件系统的方法,其本身就可以支持增量备份和多级备份,不必借助其它方式,其好处在此不在赘述。

    表 4. backup 命令的常用参数:

    参数 含义
    -level 该参数指定备份级别(0-9), 默认是 9
    -i 该参数将按名称备份整个文件系统
    -f 该参数将数据备份到指定设备中
    -p 该参数在归档之前先打包或压缩,且小于 2G 的文件。适用于不活动的文件系统
    -q 该参数指可移动介质已准备就绪
    -u 该参数将用文件系统的原始设备名称 , 时间日期以及备份级别来更新 /etc/dumpdates 文件
    -v 该参数将在 backup 时显示附加信息

    将 /CriticalDate 目录和它的所有文件和子目录备份到指定设备,使用:

     # find /CriticalDate -depth | backup -i -f /dev/rmt0 
    

    将-level 和 -u 参数结合,可以进行多级和增量备份:

     # backup -0 -uf /dev/rmt0 /home 
    

    rsync 介绍

    如果将数据备份与远程传输结合起来,譬如 scp,就可以实现数据的远程备份。但通常的备份方法,都无法对本地和远程目录中的内容进行同步。

    rsync(Remote Sync)是 Unix/Linux 系统下一款优秀的数据备份与同步工具。它可以对文件集进行同步。然而更有价值的是,rsync 使用文件的增量,也就是说,它在网络中仅发送两个文件集合有区别的部分。这样可以占用更少的带宽,并且速度更快。

    rsync 的特性:

    • 能够更新整个目录树和文件系统
    • 保持原文件的权限,时间,软硬链接
    • 安装无需特殊权限
    • 优化的流程,文件传输速率高
    • 可以通过直接的 socket 连接传输文件,或者选择 rsh,ssh 等方式
    • 支持匿名传输

    表 5. rsync 命令的常用参数:

    参数 含义
    -a 该参数表示以递归方式传输文件,并保持所有文件属性
    -v 该参数显示详细的传输处理
    -z 该参数对备份的文件在传输时进行压缩处理
    -P 该参数将显示备份过程

    如果在客户端对服务器上的重要数据进行备份的话,可使用下列的命令:


    清单 1. rsync 命令演示
     
     #rsync – avzP rsync@Server::CriticalData /Backup 
    
     =========================== 
     This is Critical Data Server 
     =========================== 
    
     receiving file list ... 
     9 files to consider 
     Location/ 
     Location/Locationlist1 
        97164953  13%    1.11MB/s    0:08:57 
    
    
       706609152 100%    1.17MB/s    0:09:37 (xfer#1, to-check=5/9) 
     Name/Name1 
              44 100%    0.16kB/s    0:00:00 (xfer#2, to-check=3/9) 
     Name/Name2 
              22 100%    0.08kB/s    0:00:00 (xfer#3, to-check=2/9) 
     Time/Monday 
              17 100%    0.06kB/s    0:00:00 (xfer#4, to-check=0/9) 
    
     sent 32111 bytes  received 497214837 bytes  847820.88 bytes/sec 
     total size is 706609242  speedup is 1.42 
    

    首次传输过程进行完全备份,当再次运行该命令时,rsync 将只传输数据的增量。从而完成增量备份。

    如果在客户端对服务器上的重要数据进行同步的话,可使用下列的命令:

     # rsync -avzP --delete rsync@Server::CriticalData /Backup 
    

    这里调用 --delete 选项,表示客户端上的数据要与服务器端完全一致,如果 /Backup 目录中有服务器不存在的文件,则删除。从而保持客户端与服务器的数据同步。

    注意:谨慎使用 --delete 选项,最好不要把已经有重要数所据的目录当做客户端的备份目录,否则会误删除重要数据。

    如果用客户端的备份数据去恢复服务器,可使用下列的命令:

     #rsync – avzPO  /Backup/ rsync@Server::CriticalData 
    

    这里需要将 rsync.conf 中 read only 设置为 false,同时使 /CirticalData 目录具有写权限。

    注意:也可调用 --delete 选项来保持客户端与服务器端的数据同步。在后面,将详细介绍 rsync.conf 的配置。-O 参数用于忽略目录的时间属性。





    数据备份与同步的自动化实现

    系统管理员必须执行的数据备份与同步任务大多牵涉到某种形式的系统配置,当管辖的任务比较庞大,数据量较多,但操作一样且有固定周期时,采用自动化脚本就成为必然。尤其是为多个操作系统提供支持时。

    要实现自动化操作,脚本编制是必须掌握的基本技能。一个脚本由一系列命令构成,这些命令负责执行各种各样的任务。系统管理员在重复执行了几遍类似的命令后,通常就能准确地掌握要点,并希望利用脚本,将重复性的工作交给计算机去做。常用的脚本语言有 Shell,Perl,Tcl/Expect 等。

    实用命令的自动化实现

    本文的示例主要是通过 Shell 来实现的。Shell 是一种“解释性”语言,列出了管理员通过键盘敲入的相同命令, 并且每次执行一次这样的命令。


    时间:2009-08-20 16:46 来源:developerWorks 中国 作者:程 燕 原文链接

    好文,顶一下
    (1)
    100%
    文章真差,踩一下
    (0)
    0%
    ------分隔线----------------------------


    把开源带在你的身边-精美linux小纪念品
    无觅相关文章插件,快速提升流量