转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/8241256.html
一:准备工作:创建归档目录 与 归档配置文件
归档目录:创建一个仓库目录,专门用于存放每日备份的文件。
:创建目录:mkdir 目录名
:修改目录权限: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=
read FILE_NAME while [ $? -eq ] #当上一条命令执行成功
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 +]
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 #=====接下来的就是遍历配置文件、打包,同上面 按日打包 脚本=============