Shell脚本编程实战一:创建按天备份的脚本工具

 转载请注明原文地址: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 #=====接下来的就是遍历配置文件、打包,同上面 按日打包 脚本=============

 

转载于:https://www.cnblogs.com/ygj0930/p/8241256.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值