首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

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

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

实用程序和命令tar 命令
tar 命令是通用性较强的 Unix/Linux 归档命令。tar 将一个或多个文件和目录打包为单个文件,并保持原始文件的大小、拥有者、权限、文件类型及其在文件系统层次结构中的位置。tar 是磁带存档程序 (tape archive) 的首字母缩写,是最易用的数据备份实用程序。
表 1. tar 命令的常用参数:
参数含义 -c 该参数会创建一个新的存档 -v 该参数会列出每个处理的文件名称 -f 该参数会指定存档或设备名称 -z 该参数将用 gzip 对存档进行压缩或解压 -x 该参数将从存档文件中提取一个或多个文件
要创建 /CriticalData 的存档文件,使用:
1
# tar -czvf backup.tar.gz /CriticalData/




要恢复该目录,使用:
1
# 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 目录和它的所有文件和子目录建立存档,使用:
1
# find /CriticalData/ -depth | cpio -ov > backup.cpio




要恢复该目录,使用:
1
# cpio -ivdum <backup.cpio




cpio 建立起来的归档文件包括文件头和文件数据两部分。文件头包含了对应文件的信息。如文件的 UID,GID,连接数以及文件大小等。其好处是可以保留硬连接,在恢复时默认情况下保留时间戳,无文件名称长度的限制。
mksysb 介绍
IBM AIX 与其它的 Unix 系统相比 , 有两个重要的特性: LVM (logical volume manager) 和 ODM (object database manager)。一般而言 , 用 cpio 或 tar 的指令亦可以备份 volume groups ,
但并不能完全正确的备份完整的系统。利用 mksysb 来备份时,可制作一个可开机的磁带 , 并且可以正常的还原系统的 LVM 和 ODM。
mksysb 备份一般用来在文件中或可启动磁带上创建 rootvg 的可安装镜像。如果需要对用户卷组进行备份的话,可使用 savevg。
mksysb 的格式包括:
  • 基本操作系统启动镜像
  • 基本操作系统安装镜像
  • 虚拟目录 (TOC)
  • rootvg 上的实际数据
图 1. mksysb 的格式mkinsttape 镜像包括以下重要文件:
  • Tapeblksz   该文件包含运行 mksysb 前设置的磁带驱动器的块大小。
  • 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 中所有装入的文件系统的内容。
如果对用户卷组进行备份的话,可使用下列的命令:
1
# 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 目录和它的所有文件和子目录备份到指定设备,使用:
1
# find /CriticalDate -depth | backup -i -f /dev/rmt0




将-level 和 -u 参数结合,可以进行多级和增量备份:
1
# 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 命令演示
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#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 将只传输数据的增量。从而完成增量备份。
如果在客户端对服务器上的重要数据进行同步的话,可使用下列的命令:
1
# rsync -avzP --delete rsync@Server::CriticalData /Backup




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




这里需要将 rsync.conf 中 read only 设置为 false,同时使 /CirticalData 目录具有写权限。
注意:也可调用 --delete 选项来保持客户端与服务器端的数据同步。在后面,将详细介绍 rsync.conf 的配置。-O 参数用于忽略目录的时间属性。
返回列表