使用shell脚本定时归档文件

归档文件

需求:

  • 此处我将文本的路径更改了,使用的我自己的文件目录,迁移了一下

前置知识(不做拓展)

  • 函数

  • 特殊运算符

  • 定时设置操作

  • 路径获取操作

  • 解压类指令

主要思路:

  1. 首先理解脚本运行思路,利用终端传递目录参数

  1. 对目录参数进行判定,此处我用了两处判定,如果读者具备更好的思维,我觉得可以将这里的操作优化,我主要就是在这里为大家提供一个类似解决问题的思路

  1. 第一处判定:参数个数是否是合理(运用特殊运算符 $#)

  1. 第二处判定:参数是否合法,是否是预定义参数(参数现在的定义是目录)(运用特殊运算符-d )

  1. 如果上述条件合法满足

  1. 定义4大变量

  1. 文件目录名称

  1. 文件名称

  1. 时间

  1. 归档目标文件路径

  1. 归档目标文件名称

  1. 进行归档 使用tar -czf 目标路径 源路径

  • 测试操作

  • 查看目标路径

  1. 通过crontab -e 设置相关的定时操作

这里我设置的 每天两点进行文件归档

  • 下面附上脚本注释以及源代码,这个操作我觉得是比较考验

  • 你对Linux文件路径的形式理解的

  • 之前我对这类路径理解不是很深刻,这个demo弄了两次才成功,主要难点就在路径位置,其他就仁者见仁,智者见智了

代码
#!/bin/bash
#利用shell脚本实现按指定时间归档文件的操作
#判定传入的参数是否是一个
# $#此特殊运算符是用来测算有多少个参数传入的
if [ $# -ne 1  ]
then
	echo "你所输入的参数是超过一个的,请重新输入"
	exit
fi

# 判定当前的参数是否是目录
if  [ -d $1 ]
then
	#直接跳过此处,然后进行操作
	echo
else
	echo "你所输入的参数并不是目录"
	exit
fi

#定义目标目录
#这里的操作需要重点理解;解析:传递到当前目录下面然后获取绝对路径名称
DIR_PATH=$(cd $(dirname $1); pwd)
DIR_NAME=$(basename $1)
#定义日期信息,日期年月日信息
DATE=$(date +%y%m%d)

#文件名称
FILE=fbcd_${DIR_NAME}_$DATE.tar.gz
#目标路径
DEST=/home/filecontain/$FILE

tar -czf $DEST $DIR_PATH/$DIR_NAME
if  [ $? -eq 0 ]
then
	echo "归档文件成功"
	echo "文件目标地址为" $DEST
else
	echo "归档文件失败"
	exit
fi

欢迎浏览我的频道,我是一名热爱生活的程序员!

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值