设计文档Linux下实现:自动实现指定目录的备份文件状态:[]草稿[√]正式发布[]正在修改文件标识:当前版本:1.1作者:审核:完成日期:2013-11-15项目名称,软件总体设计文档公司名称Page2of8版本历史版本/状态作者审核起止日期备注项目名称,软件总体设计文档公司名称Page3of80.文档介绍0.1文档目的与范围自动实现指定目录的备份包含子目录和所有文件保留备份的文件属性(权限、所有者、时间)备份文档命名的唯一性、方便理解0.2术语与缩写解释缩写、术语解释TarDir备份文件存放目录saveDir需要备份的目录或文件tarFile备份的文件名称…项目名称,软件总体设计文档公司名称Page4of81.系统概述(1)此系统是一个在Linux下自动备份指定目录的系统。(2)此系统实现的功能是:自动备份指定的目录到/home/user/TarDir中。如果在root账户中执行则备份后的文件存在:/root/TarDir2.开发与运行环境类别标准配置最低配置开发环境LinuxLinux3G硬盘,128M内存测试环境LinuxLinux3G硬盘,128M内存运行环境LinuxLinux3G硬盘,128M内存项目名称,软件总体设计文档公司名称Page5of83.软件的总体结构图tarDir=${HOME:-}/TarDir(设置备份的保存目录)[!-d$tarDir](判定设置的保存目录是分存在)[-f$tarFile](判断备份是否存在)真mkdirTarDir(创建目录)tarFile=$tarDir/$thisTime.tar(建立新的备份文件,以日期为名称)set`date`thisTime=$1$2$3echoyourtarFileisexistnow,continuetomorrow!;tar-cvf$tarFile$saveDir/*(备份该文件)假真[-d$saveDir](判读需要备份的目录是否存在)真假echoyourinputdirisnotexist!;echoyourinputdirisnotexist!;项目名称,软件总体设计文档公司名称Page6of84.功能模块设计概述4.1模块命名规则提示:说明源文件、类、函数、变量等命名规则4.2模块汇总子系统A模块名称设计概述…子系统B模块名称设计概述…4.3安全性设计说明通过chmod可以赋予各个用户执行backup.sh的权限。5.用户界面设计概述6.综合考虑6.1稳定性和可扩展性backup.sh这个脚本,很稳定,非root用户不能修改。同时,可以扩充,更加新的功能。比如,指定多个备份的目录和保存备份文件的目录等。项目名称,软件总体设计文档公司名称Page7of86.2防错与出错处理系统有相应的容错机制,比如,备份文件名已经存在,则不会再进行备份,而之后再第二天进行备份。7源代码和使用说明7.1源代码#!/bin/bash#getthedirfortarsaveDir=$1#settingthesavedirtarDir=${HOME:-}/TarDir#ifthedirisnotexist.createitif[!-d$tarDir];thenmkdirTarDirfi#usethetimenowforit`snameset`date`thisTime=$1$2$3#buildanewfileNametarFile=$tarDir/$thisTime.tarif[-f$tarFile];thenechoyourtarFileisexistnow,continuetomorrow!;else#backupwhenthedirisexistif[-d$saveDir];thentar-cvf$tarFile$saveDir/*elseechoyourinputdirisnotexist!;项目名称,软件总体设计文档公司名称Page8of8fifiechoAllhavedone!;7.2使用说明.test72.sh/home/hyh(需要备份目录)备份文件放在/home/user/TarDir中如果在root账户中执行则备份后的文件存在:/root/TarDir[root@localhosthyh]#cd/root[root@localhost~]#cdTarDir/[root@localhostTarDir]#ls2013?ê11??15è?.tar[root@localhostTarDir]#将启动文本写入/ect/profile或者/ect/environment或者/home/user/.bashrc/home/user/.bash_profile可以实现开机运行8思考题8.1包含子目录和所有文件tar–c8.2保留备份的文件属性(权限、所有者、时间)tar-p8.3备份文档命名的唯一性、方便理解由于每天只备份一天,且以日期为文件名,固备份的文档名称是唯一的。