Linux扩展篇之综合实例应用(文件归档)

1. 文件归档

实际生产应用中,往往需要对重要数据进行归档备份。
需求:

  1. 实现一个每天对指定目录归档备份的脚本,
  2. 输入一个目录名称(末尾不带/), 将目录下所有文件按天归档保存,
  3. 并将归档日期附加在归档文件名上,放在/root/archive 下。

这里用到了归档命令:

  • tar 后面可以加上-c 选项表示归档,
  • 加上-z 选项表示同时进行压缩,得到的文件后缀名 为.tar.gz。

脚本实现如下:

#!/bin/bash

# 首先判断输入参数个数是否为 1
if [ $# -ne 1 ]
then
        echo "参数个数有误,应该输入一个参数,作为归档目录名"
        exit
fi

# 从参数中获取目录名称
if [ -d $1 ]
then
        echo
else
        echo
        echo "目录不存在!"
        exit
fi

DIR_NAME=$(basename $1)
DIR_PATH=$(cd $(dirname $1); pwd)

# 获取当前日期
DATE=$(date +%y%m%d)

# 定义生成的归档文件名称
FILE=archive_${DIR_NAME}_$DATE.tar.gz
DEST=/root/archive/$FILE

# 开始归档目录文件

echo "开始归档.."
echo

# tar -czf $DEST $DIR_PATH/$DIT_NAME
tar -czf $DEST $DIR_PATH/$DIR_NAME

if [ $? -eq 0 ]
then
        echo
        echo "归档成功!"
        echo "归档文件为:$DEST"
        echo
else
        echo "归档出现问题!"
        echo
fi
exit                                                                                         

在这里插入图片描述

  • 错误1和2:输入的参数不对
  • 错误3:没有文件目录(archive)
  • 错误4:变量写错了,在 tar -czf $DEST $DIR_PATH/$DIT_NAME中,DIR_NAME错写成DIT_NAME
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值