当前位置: 首页 > article >正文

【CentOS】Shell脚本案例:归档文件

实际生产应用中,往往需要对重要数据进行归档备份。
需求:实现一个每天对指定目录归档备份的脚本,输入一个目录名称(末尾不带/),将目录下所有文件按天归档保存,并将归档日期附加在归档文件名上,放在/root/archive下。

完整Shell脚本:

#!/bin/bash

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

# 判断参数目录是否存在
if [ -d $1 ]
then
        echo
else
        echo
        echo "目录不存在!"
        echo
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 选项 归档存储路径 归档的内容
tar -czf $DEST $DIR_PATH/$DIR_NAME
  
if [ $? -eq 0 ]
then
        echo
        echo "归档成功!"
        echo "归档文件为:$DEST"
        echo
else
        echo "归档失败!"
        echo
fi

exit

需要创建存储目录:

[root@d Shell]# mkdir /root/archive

试运行:
在这里插入图片描述
创建crontab系统定时任务:

[root@d Shell]# crontab -e  编辑crontab定时任务
[root@d Shell]# crontab -l  查询crontab任务
[root@d Shell]# crontab -r  删除当前用户所有的crontab任务
0 2 * * * /home/zyx/Shell/daily_archive.sh /root/scripts

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述


http://www.kler.cn/news/354996.html

相关文章:

  • C++从入门到起飞之——红黑树 全方位剖析!
  • 【Flutter 面试题】 Flutter如何使用路由、全局错误捕获和自定义组件统一管理错误页面?
  • SpringBoot3响应式编程全套-R2DBC
  • 模板方法设计模式
  • hdfs API操作 hadoop3.3.5
  • java项目技术架构图-样例
  • mysql--表的约束
  • 【Ubuntu】虚拟机共享文件夹启用
  • NFTScan | 10.07~10.13 NFT 市场热点汇总
  • vmware ubuntu根分区扩容
  • 纯前端如何实现批量下载功能呢?
  • ChatGPT免费使用:人工智能在现代社会中的作用
  • Day31 || 122.买卖股票的最佳时机 II、55. 跳跃游戏、 45.跳跃游戏II 、1005.K次取反后最大化的数组和
  • LangGraph - Hierarchical Agent Teams
  • 京东背调有病吧......
  • 开源节流-2024年10月17日
  • 【秋招笔试】10.13拼多多(已改编)秋招-三语言题解
  • LLM大模型的评测维度有哪些?
  • 试用cursor的简单的记录
  • mysql迁移到达梦的修改点