Board logo

标题: Unix/Linux 系统自动化管理 数据备份与同步篇(3) [打印本页]

作者: look_w    时间: 2018-6-13 15:20     标题: Unix/Linux 系统自动化管理 数据备份与同步篇(3)

数据备份与同步的自动化实现系统管理员必须执行的数据备份与同步任务大多牵涉到某种形式的系统配置,当管辖的任务比较庞大,数据量较多,但操作一样且有固定周期时,采用自动化脚本就成为必然。尤其是为多个操作系统提供支持时。
要实现自动化操作,脚本编制是必须掌握的基本技能。一个脚本由一系列命令构成,这些命令负责执行各种各样的任务。系统管理员在重复执行了几遍类似的命令后,通常就能准确地掌握要点,并希望利用脚本,将重复性的工作交给计算机去做。常用的脚本语言有 Shell,Perl,Tcl/Expect 等。
实用命令的自动化实现
本文的示例主要是通过 Shell 来实现的。Shell 是一种“解释性”语言,列出了管理员通过键盘敲入的相同命令, 并且每次执行一次这样的命令。
例如执行一条简单的 tar 命令,可以使用下面的一个简单的脚本。
清单 2. tar 自动化示例脚本
1
2
#!/bin/sh
tar -czvf backup.tar.gz /CriticalData/




如果我们想用其它的命令来实现数据备份,可以将以上的示例脚本中的命令部分替换掉,例如执行一条简单的 cpio 命令,可替换为下面一个简单的脚本。
清单 3. mksysb 自动化示例脚本
1
2
#!/bin/sh
find /CriticalData/ -depth | cpio -ov > backup.cpio




事实上我们可以通过 shell 中一些变量设置,条件测试以及流程控制语句来实现不同的需求。例如,管理员希望能够在周一到周日,通过 backup 命令做多级备份。
我们可以设置 Level 变量,当变量满足不同条件时,就可以实现多级备份。
清单 4. backup 自动化示例脚本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/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 服务,就可以定期对主服务器的数据进行自动备份与同步。





欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0