转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/8241256.html
一:准备工作:创建归档目录 与 归档配置文件
归档目录:创建一个仓库目录,专门用于存放每日备份的文件。
1:创建目录:mkdir 目录名 2:修改目录权限:chmod 权限 目录名 #如果不修改权限,则默认不能在该目录下创建、删除内容
归档配置文件:一个文本文件,每一行是一个路径,表示一个待归档的文件或目录。
二:创建备份脚本
#!/bin/bash #Daily Backup Util DATE=$(date +%y%m%d) FILE=$DATE_backup.tar.gz CONFIG_FILE=归档配置文件路径 DESTINATION=归档目录路径 #检查配置文件是否存在 if [ -f $CONFIG_FILE ] then echo "Config File exit..." else echo "Config File doesn't exit..." exit fi #重定向输入,从配置文件读取内容 exec < $CONFILE_FILE #读取配置文件内容,把逐条路径进行校验,如果文件存在则把文件路径加到list变量中 FILE_NO=1 read FILE_NAME while [ $? -eq 0 ] #当上一条命令执行成功 do if [ -f $FILE_NAME -o -d $FILE_NAME ] then FILE_LIST="$FILE_LIST $SILE_NAME" else echo "$FILE_NAME doesn't exit......" fi FILE_NO=$[$FILE_NO +1] read FILE_NAME done #进行归档 sudo tar -czf $DESTINATION $FILE_LIST echo "Backup completed......" exit
三:改变脚本文件权限,赋予可执行权限
四:运行脚本,进行归档
改进:
1)归档目录的目录层级
我们不可能把所以归档文件笼统地放在一个目录中,如果按时间来归档的话,我们不妨就用时间层级来组织归档目录。
总归档目录Backup
|
以年份命名的目录
|
一年中的月份目录
|
按日命名的目录\按年月日命名的备份文件
|
按年月日时命名的备份文件
2)在备份脚本中创建层级归档目录
#!/bin/bash #Hourly Backup Util BASE_DIR=归档总目录
YEAR=$(date +%Y) MONTH=$(date +%m) DAY=$(date +%d) TIME=$(date +%Y%m%d%H)
#创建层级目录:-p 选项,如果目录存在,不会产生错误信息;目录不存在,则创建 mkdir -p $BASE_DIR/$YEAR/$MONTH/$DAY DESTINATION=$BASE_DIR/$YEAR/$MONTH/$DAY/$TIME_backup.tar.gz #=====接下来的就是遍历配置文件、打包,同上面 按日打包 脚本=============