shell 脚本常用于自动化执行文件备份与压缩的任务

简介: shell 脚本常用于自动化执行文件备份与压缩的任务

在Linux环境下, shell 脚本常用于自动化执行文件备份与压缩的任务。以下是一个简单的示例,展示如何使用 shell 脚本备份 /etc 目录下的所有内容并压缩至 /root/bak 目录:

#!/bin/bash

# 定义源目录、目标目录和备份文件名(包括日期时间戳)
SOURCE_DIR="/etc"
DEST_DIR="/root/bak"
BACKUP_FILE="etc_backup_$(date +%Y%m%d%H%M%S).tar.gz"

# 执行备份与压缩操作
cd "$SOURCE_DIR" || exit
tar -czf "${DEST_DIR}/${BACKUP_FILE}" .

# 可选:清理过期备份(例如,保留最近7天的备份)
find "${DEST_DIR}/" -name "etc_backup_*.tar.gz" -mtime +7 -exec rm {
   } \;

echo "Backup of /etc completed and compressed to ${DEST_DIR}/${BACKUP_FILE}"

# 如果需要,你可以添加定时任务设置,让此脚本定期运行
# 如在crontab中添加一行类似:
# 0 0 * * * /path/to/your/script.sh

在这个脚本中:

  • tar -czf 命令用于创建一个新的归档文件并对其进行gzip压缩。-c 表示创建新归档文件,-z 表示使用gzip压缩,-f 指定归档文件名。

  • $(date +%Y%m%d%H%M%S) 用于获取当前的日期和时间,并将其包含在备份文件名中,以便追踪备份的时间点。

  • find 命令可用于按时间筛选旧的备份文件并删除,这里假设我们只保留最近7天内的备份。

最后,提醒一句,实际在生产环境中运行此类脚本之前,务必进行充分的测试和验证,确保脚本的安全性和正确性。

目录
相关文章
|
7天前
|
Shell
Shell脚本有哪些基本语法?
【9月更文挑战第4天】
31 17
|
7天前
|
存储 Unix Shell
shell脚本编程基础
【9月更文挑战第4天】
24 12
|
5天前
|
网络协议 关系型数据库 MySQL
Shell 脚本案例
Shell 脚本案例
23 8
|
6天前
|
Shell Linux 开发工具
linux shell 脚本调试技巧
【9月更文挑战第3天】在Linux中调试shell脚本可采用多种技巧:使用`-x`选项显示每行命令及变量扩展情况;通过`read`或`trap`设置断点;利用`echo`检查变量值,`set`显示所有变量;检查退出状态码 `$?` 进行错误处理;使用`bashdb`等调试工具实现更复杂调试功能。
|
11天前
|
运维 监控 Shell
自动化运维之宝:编写高效的Shell脚本
【8月更文挑战第31天】在运维的世界里,Shell脚本是一把瑞士军刀,它让日常任务变得简单而高效。本文将通过浅显易懂的语言和实际案例,带你领略Shell脚本的魅力,并教你如何打造属于自己的自动化工具箱。无论你是初学者还是资深运维,这篇文章都将为你打开一扇窗,让你看到不一样的风景。让我们一起探索Shell脚本的世界吧!
|
5天前
|
运维 Ubuntu Devops
自动化运维工具的魅力:Ansible入门
【9月更文挑战第5天】在快速变化的IT世界里,自动化运维不再是可选项,而是必需品。Ansible,一款简单却强大的自动化工具,正成为众多DevOps工程师的首选。本文将带你了解Ansible的基本概念、安装步骤以及如何编写简单的Playbook,从而开启你的自动化之旅。
54 35
|
2天前
|
存储 弹性计算 运维
自动化监控和响应ECS系统事件
阿里云提供的ECS系统事件用于记录云资源信息,如实例启停、到期通知等。为实现自动化运维,如故障处理与动态调度,可使用云助手插件`ecs-tool-event`。该插件定时获取并转化ECS事件为日志存储,便于监控与响应,无需额外开发,适用于大规模集群管理。详情及示例可见链接文档。
|
6天前
|
运维 监控 安全
python在自动化运维中的妙用分享
python在自动化运维中的妙用分享
22 8
|
5天前
|
运维 Ubuntu Linux
掌握自动化运维:使用Ansible进行服务器配置管理
【9月更文挑战第5天】本文旨在通过深入浅出的方式,介绍如何利用Ansible这一强大的自动化工具来简化和加速日常的服务器配置管理工作。文章将首先概述自动化运维的重要性,接着详细讲解Ansible的基本概念、安装过程及其在服务器配置中的应用实例。我们将通过具体的操作步骤和代码示例,展示如何使用Ansible编写任务,以及如何执行这些任务以实现批量的服务器配置。最后,文章将探讨一些高级用法,帮助读者进一步提升自动化运维的能力。
|
6天前
|
运维 监控 Devops
自动化运维之路:从脚本到DevOps
【9月更文挑战第4天】本文通过探索自动化在运维中的应用,揭示从简单的shell脚本到复杂的DevOps实践的转变过程。我们将讨论如何利用自动化工具来提升效率、减少错误并优化工作流程,同时分享一些实用的代码示例,帮助读者理解自动化运维的实际应用场景。
24 5
下一篇
DDNS