自动化脚本之加密内容解密适用于Linux

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 自动化脚本之加密内容解密适用于Linux

这个脚本用于解决加密文件提取的 , 懂的自然懂  不过多介绍。

脚本功能介绍

这个脚本是用来复制一个文件夹及其子文件夹和文件的结构到另一个文件夹的。它接受两个参数,分别是源文件夹和目标文件夹。它会遍历源文件夹中的所有条目,并根据条目的类型执行不同的操作:

  • 如果是目录,就在目标文件夹中创建同名的目录,并递归复制该目录下的内容。
  • 如果是文件,就在目标文件夹中创建同名的文件,并将源文件的内容复制到该文件中。
#!/bin/bash
 
# 脚本需要两个参数: 源文件夹和目标文件夹
if [ "$#" -ne 2 ]; then
  echo "Usage: $0 source_directory target_directory"
  exit 1
fi
 
src_dir="$1"
tgt_dir="$2"
 
# 如果目标文件夹不存在,则创建它
mkdir -p "$tgt_dir"
 
# 用于递归复制文件和目录结构的函数
function copy_structure() {
  local src_path="$1"
  local tgt_path="$2"
 
  shopt -s dotglob
  for item in "$src_path"/*; do
    if [ -e "$item" ]; then  # 检查条目是否存在
      if [ -d "$item" ] && [ "$(basename "$item")" != "." ] && [ "$(basename "$item")" != ".." ]; then
        # 如果是目录, 则创建目标文件夹并递归复制
        echo "Creating directory: $tgt_path/$(basename "$item")"
  mkdir -p "$tgt_path/$(basename "$item")"
        copy_structure "$item" "$tgt_path/$(basename "$item")"
      elif [ -f "$item" ]; then
        # 如果是文件, 则复制文件并保留原始文件名
        local filename="$(basename -- "$item")"
        local extension="${filename##*.}"
        local name_only="${filename%.*}"
        if [ ! -d "$tgt_path/$name_only" ]; then
  echo "Copying file: $item -> $tgt_path/$name_only"
          touch "$tgt_path/$name_only"
          cat "$item" > "$tgt_path/$name_only"
          if [ "$extension" != "$name_only" ]; then
            mv "$tgt_path/$name_only" "$tgt_path/$name_only.$extension"
          fi
        fi
      fi
    fi
  done
  shopt -u dotglob
}
 
# 调用复制函数
copy_structure "$src_dir" "$tgt_dir"
 

使用示例

要运行这个脚本,需要在终端中输入:

bash copy_structure.sh source_directory target_directory

例如:

bash copy_structure.sh /home/user/test /home/user/backup

然后就可以看到类似下面的输出:

Creating directory: /home/user/backup/dir1
Copying file: /home/user/test/file1.txt -> /home/user/backup/file1.txt
Copying file: /home/user/test/dir1/file2.jpg -> /home/user/backup/dir1/file2.jpg
Creating directory: /home/user/backup/dir2
Copying file: /home/user/test/dir2/file3.pdf -> /home/user/backup/dir2/file3.pdf

文章

相关文章
|
4天前
|
存储 Python
Python自动化脚本编写指南
【10月更文挑战第38天】本文旨在为初学者提供一条清晰的路径,通过Python实现日常任务的自动化。我们将从基础语法讲起,逐步引导读者理解如何将代码块组合成有效脚本,并探讨常见错误及调试技巧。文章不仅涉及理论知识,还包括实际案例分析,帮助读者快速入门并提升编程能力。
21 2
|
6天前
|
运维 监控 Python
自动化运维:使用Python脚本简化日常任务
【10月更文挑战第36天】在数字化时代,运维工作的效率和准确性成为企业竞争力的关键。本文将介绍如何通过编写Python脚本来自动化日常的运维任务,不仅提高工作效率,还能降低人为错误的风险。从基础的文件操作到进阶的网络管理,我们将一步步展示Python在自动化运维中的应用,并分享实用的代码示例,帮助读者快速掌握自动化运维的核心技能。
18 3
|
12天前
|
运维 监控 应用服务中间件
自动化运维:如何利用Python脚本提升工作效率
【10月更文挑战第30天】在快节奏的IT行业中,自动化运维已成为提升工作效率和减少人为错误的关键技术。本文将介绍如何使用Python编写简单的自动化脚本,以实现日常运维任务的自动化。通过实际案例,我们将展示如何用Python脚本简化服务器管理、批量配置更新以及监控系统性能等任务。文章不仅提供代码示例,还将深入探讨自动化运维背后的理念,帮助读者理解并应用这一技术来优化他们的工作流程。
|
13天前
|
运维 监控 Linux
自动化运维:如何利用Python脚本优化日常任务##
【10月更文挑战第29天】在现代IT运维中,自动化已成为提升效率、减少人为错误的关键技术。本文将介绍如何通过Python脚本来简化和自动化日常的运维任务,从而让运维人员能够专注于更高层次的工作。从备份管理到系统监控,再到日志分析,我们将一步步展示如何编写实用的Python脚本来处理这些任务。 ##
|
14天前
|
Ubuntu Linux Shell
Linux 系统中的代码类型或脚本类型内容
在 Linux 系统中,代码类型多样,包括 Shell 脚本、配置文件、网络配置、命令行工具和 Cron 定时任务。这些代码类型广泛应用于系统管理、自动化操作、网络配置和定期任务,掌握它们能显著提高系统管理和开发的效率。
|
17天前
|
运维 Prometheus 监控
自动化运维之路:从脚本到DevOps
【10月更文挑战第25天】在数字化时代的浪潮中,运维不再是简单的服务器管理,而是成为了企业竞争力的核心。本文将带你走进自动化运维的世界,探索如何通过技术手段提升效率和稳定性,以及实现快速响应市场的能力。我们将一起学习如何从基础的脚本编写进化到全面的DevOps实践,包括工具的选择、流程的优化以及文化的建设。无论你是运维新手还是资深专家,这篇文章都将为你提供有价值的见解和实用的技巧。
17 3
|
18天前
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
19天前
|
JSON 测试技术 持续交付
自动化测试与脚本编写:Python实践指南
自动化测试与脚本编写:Python实践指南
24 1
|
1月前
|
人工智能 运维 Devops
自动化运维之路:从脚本到DevOps的转变
【10月更文挑战第7天】在这篇文章中,我们将一起探索自动化运维的演变历程,从最初的简单脚本到现代的DevOps实践。我们将深入理解自动化如何改变了运维工作的本质,并讨论实现这一转变的关键技术和策略。文章将不包含代码示例,而是聚焦于理念、工具和方法论的介绍,旨在为读者提供一个全面的自动化运维框架视图。
|
1月前
|
运维 Java Linux
【运维基础知识】Linux服务器下手写启停Java程序脚本start.sh stop.sh及详细说明
### 启动Java程序脚本 `start.sh` 此脚本用于启动一个Java程序,设置JVM字符集为GBK,最大堆内存为3000M,并将程序的日志输出到`output.log`文件中,同时在后台运行。 ### 停止Java程序脚本 `stop.sh` 此脚本用于停止指定名称的服务(如`QuoteServer`),通过查找并终止该服务的Java进程,输出操作结果以确认是否成功。
35 1