使用 tar、cpio 或其他的存档文件类型,可能是最直接的信息存储方式。当使用这种方法时,最好注明这些文件的日期,并创建一个简单的备份脚本,专门用来生成指定的文件。另一方面,您还需要一种方法,以便删除不再需要的备份数据(例如,那些超过了特定时间段的备份数据)。
清单 1 显示了一个简单的脚本,该脚本为不同的目录创建了经过 tar 处理和压缩(使用 bzip2)的备份。这些备份文件创建于与远程系统共享的网络文件系统 (NFS),而该远程系统保留了相应的备份副本。
#!/bin/bash
DATE=`date +%Y%m%d.%H%M`
HOST=`hostname`
TEMP=/mnt/backupprepare
echo "Preparing backup..."
cd $TEMP
files=`/usr/local/mcslp/filesbydate.pl notlast5days $HOST*`
if [ -n "$files" ]
then
echo "Deleting old files: $files"
rm $files
fi
cd /etc
tar cf - ./* |bzip2 -9 - >$TEMP/$HOST-etc.$DATE.tar.bz2
cd /var/bind
tar cf - ./* |bzip2 -9 - >$TEMP/$HOST-bind.$DATE.tar.bz2
cd /export/home/webs
tar cf - ./* |bzip2 -9 - >$TEMP/$HOST-webs.$DATE.tar.bz2
cd /etc/apache2
tar cf - ./* |bzip2 -9 - >$TEMP/$HOST-webconfig.$DATE.tar.bz2
|
使用 date 命令生成 DATE 变量,并创建一个“20060627.2200”或“10PM on 27th of June 2006”形式的文件名。要使得备份脚本具有可移植性,要求创建的所有文件的前缀中包含创建该文件的主机的名称,这样一来就可以很容易地将多台主机的内容备份到相同的位置,并且 TEMP 目录作为每个备份的目标。
使用单独的 Perl 脚本来确定可以对备份准备目录中哪些文件进行删除。稍后将研究这个脚本。在这个脚本中,您可以指定需要保留最近 5 天的文件,换句话说,该脚本将根据备份文件的文件名中的日期说明,选择那些不是最近 5 天内创建的文件。
实际的备份过程是一个简单的 tar 命令,同时还使用了 bzip2 对文件进行压缩。因为生成的文件可能很大,所以您可能需要对这个方法进行改进,以便仅选择那些可能在某个时间段内进行过更改的文件。通过使用 find 命令选择所需的文件(请参见清单 2),您可以达到这个目的。
清单 2. 使用 bzip2 对文件进行压缩的 tar 命令
tar cf - `find . -type f -mtime -1` | bzip2 -9 -
>$TEMP/$HOST-webconfig.$DATE.tar.bz2
|
您可以在 find 语句中仅指定需要选择的文件,这样可以防止对目录的更改导致将那些没有更改的文件包含到 tar 文件中。这将包含当前目录中的文件,如清单 3 所示。
$ cd /etc
$ tar cf etc.tar ./*
|
这样做可以避免显式地指定目录,如清单 4 所示。
$ tar cf etc.tar /etc
|
这样可以确保将恢复的文件放到备用的目录,而不是运行中的某个位置。
这个用于删除旧文件的脚本将使用文件名,提取其中嵌入的日期和时间,并确定该文件是否属于指定的界限,例如,在不在特定的天数之内(请参见清单 5)。
相关专题
- SCOUNIX基础讲座--第十一讲:TCP/IP 管理 (318次浏览)
- SCO UNIX基础讲座--第三讲vi editor (308次浏览)
- 基础知识: HP-Unix下Oracle9i的安装 (306次浏览)
- Unix系统中字符终端的管理 (306次浏览)
- 利用UNIX的TFTP和RCP功能配置CISCO路由器 (217次浏览)
- simp server for unix 配置教程 (144次浏览)
- UNIX和WINDOWS2000上的ORACLE的差异 PartIII (142次浏览)
- Apache For Unix 2.0.55 下载列表 (121次浏览)
- unix口令文件介绍 (107次浏览)
- 运用CrackLib构建安全的Unix口令 (105次浏览)



