作用:
运行此脚本,传入一个参数,即
需要打包归档的文件夹的路径,会在/root/archive/目录下生成.tar.gz压缩包
脚本:
#!/bin/bash
# 此脚本作用,将指定路径下的目录压缩打包,存放到相对路径下
#1、 首先判断脚本的输入参数是否是1
if [ $# -ne 1 ]
then
echo "执行脚本参数错误!参数应当为1个,作为归档目录名"
# 退出脚本
exit
fi
#2、从参数中获取目录名称
# 判断给定目录是否是目录
#判断是否是目录
[ -d $1 ]
# 如果不是目录
if [ $? -ne 0 ]
then
echo "给定参数不是一个存在的目录"
exit
else
echo "指定目录正确!"
fi
# 获取给定目录的绝对路径 和 目录名称
#命令替换,或者basename 命令的返回值
#截取目录名称
DIR_NAME=$(basename $1 .sh )
#截取目录的父目录的绝对路径
#$(dirname $1)为目前的前缀,可能为相对路径
DIR_PATH=$(cd $(dirname $1); pwd)
echo "目录名称:"$DIR_NAME
echo "目录的路径:"$DIR_PATH
#获取当前的日期
DATE=$(date +%Y%m%d)
#定义生成的归档名称
#archive_目录名称_日期.tar.gz
FILE=archive_${DIR_NAME}_$DATE.tar.gz
#如果指定存放归档的目录不存在,则创建出来
DEST=/root/archive/$FILE
#如果指定目录/root/archive 不存在,则创建
[ -d /root/archive/ ]
if [ $? -ne 0 ]
then
echo "存放归档文件的目录不存在,自动创建.."
mkdir /root/archive
echo "存放归档文件的目录创建成功!"
fi
#开始归档
echo "开始归档.."
echo
#被归档的文件夹
[ $DIR_PATH = "/" ] && PACKAGE_FILE=/$DIR_NAME || PACKAGE_FILE=$DIR_PATH/$DIR_NAME
#压缩打包指定目录
echo "被压缩的文件夹:"$PACKAGE_FILE
echo
echo "目标路径:"$DEST
echo
echo "开始压缩文件夹.."
tar -czf $DEST $PACKAGE_FILE
if [ $? -eq 0 ]
then
echo
echo ""归档成功!
echo "存放路径为:$DEST"
echo
else
echo "归档出现问题!"
echo
fi
exit
开启定时任务
crontab -e
0 0 * * * 运行脚本命令 需要归档的文件夹
eg:

定时任务:

该脚本使用bash语言编写,功能是接收一个参数,即需要打包的文件夹路径,然后在/root/archive/下创建.tar.gz压缩包。它首先检查参数数量和有效性,接着确认目录存在并获取其绝对路径,然后创建归档文件名,如果归档目录不存在则创建,最后使用tar命令进行压缩。此外,文章还提到了如何设置cron定时任务来定期运行此脚本。
968

被折叠的 条评论
为什么被折叠?



