首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

将shell脚本中的文件与md5sum进行比较,并为更改的文件创建csv

Shell脚本是一种用于自动化任务和批处理的脚本语言。它可以在Unix、Linux和类Unix系统上运行,并且非常适合用于文件处理和系统管理任务。

在这个问题中,我们需要编写一个Shell脚本来比较文件的MD5校验和,并为更改的文件创建一个CSV文件。下面是一个示例的Shell脚本:

代码语言:txt
复制
#!/bin/bash

# 定义要比较的文件路径
file_path="/path/to/files"

# 定义保存MD5校验和的文件路径
md5_file="/path/to/md5sum.txt"

# 定义保存更改文件的CSV文件路径
csv_file="/path/to/changed_files.csv"

# 生成当前文件夹下所有文件的MD5校验和
find "$file_path" -type f -exec md5sum {} \; > "$md5_file"

# 比较MD5校验和并将更改的文件写入CSV文件
while read -r line; do
    md5=$(echo "$line" | awk '{print $1}')
    file=$(echo "$line" | awk '{print $2}')
    
    # 检查文件是否存在于MD5文件中
    if grep -q "$file" "$md5_file"; then
        # 获取之前保存的MD5校验和
        old_md5=$(grep "$file" "$md5_file" | awk '{print $1}')
        
        # 比较MD5校验和是否相同
        if [ "$md5" != "$old_md5" ]; then
            # 将更改的文件写入CSV文件
            echo "$file" >> "$csv_file"
        fi
    else
        # 将新文件写入CSV文件
        echo "$file" >> "$csv_file"
    fi
done < "$md5_file"

这个脚本首先定义了要比较的文件路径、保存MD5校验和的文件路径和保存更改文件的CSV文件路径。然后,它使用find命令生成文件的MD5校验和,并将结果保存到指定的MD5文件中。

接下来,脚本逐行读取MD5文件中的内容,并提取出MD5校验和和文件路径。然后,它检查文件是否存在于MD5文件中。如果存在,它将获取之前保存的MD5校验和,并将其与当前的MD5校验和进行比较。如果不相同,它将将文件路径写入CSV文件。

如果文件在MD5文件中不存在,它将将文件路径写入CSV文件。

最后,脚本完成了所有的比较和文件写入操作。

这个脚本可以通过在终端中运行bash script.sh来执行。请确保将/path/to/files/path/to/md5sum.txt/path/to/changed_files.csv替换为实际的文件路径。

对于这个问题,腾讯云提供了一些相关的产品和服务,例如云服务器、对象存储、云函数等。你可以在腾讯云的官方网站上找到更多关于这些产品的信息和文档。

希望这个答案能够满足你的需求,如果有任何问题,请随时提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • HIVE基础命令Sqoop导入导出插入表问题动态分区表创建HIVE表脚本筛选CSV中的非文件行GROUP BYSqoop导出到MySQL字段类型问题WHERE中的子查询CASE中的子查询

    和数据导入相关 Hive数据导入表情况: 在load data时,如果加载的文件在HDFS上,此文件会被移动到表路径中; 在load data时,如果加载的文件在本地,此文件会被复制到HDFS的表路径中...创建HIVE表脚本 根据MySQL表创建Hive表脚本 import pymysql import codecs def getSingleSQL(table,schema = 'srm'...finally: connection.close() getTotalSQL() 筛选CSV中的非文件行 AND CAST( regexp_replace (sour_t.check_line_id...也是可以的。 这里可以使用collect_set函数,collect_set(col)函数只接受基本数据类型,它的主要作用是将某字段的值进行去重汇总,产生array类型字段。...CASE中的子查询 这个与上面是一样的,都是改成JOIN的方式。

    15.4K20

    使用Docker构建安全的虚拟空间

    实现思路 大体的思路是,在我的 vps 上为每个用户创建一个文件目录,然后将目录挂载到 docker 容器的默认网站目录,也就是/var/www/html,,用户可以通过 FTP 将网站源码上传到自己的文件目录...做好前期的准备工作,我们就可以开始构建空间了,出于方便我们将整个过程编写成 shell 脚本,这样以后要新建空间的时候,只需要运行一下就可以了。...那么对应的 shell 脚本就是: #/home/ubuntu/rooms/ 即你的vps上用来存放用户文件夹的位置 # $1 参数为要设置的用户名,也是虚拟空间容器&数据库用户&数据库&用户文件夹的名字...新建数据库用户&数据库,并为用户赋权 这部分操作比较简单,我们就只需要为用户新建一个 MySQL 账户和一个专属数据库就好了。...shell 脚本: # 让用户输入 mysql 容器的 root 密码read -sp "请输入 MySQL 容器的 root 账户密码:" mysql_pass# 创建数据库docker exec -

    3.2K30

    ansible批量管理软件部署及剧本

    (重要模块) 执行shell脚本模块 script  (重要模块) 把脚本发到客户端,然后执行;执行脚本命令在远端服务器上 copy   (重要模块) 把本地文件发送到远端 file 设定文件属性模块...在本地执行脚本时,将脚本中的内容传输到远程节点上运行 creates (added in 1.5) 定义一个文件是否存在,如果不存在运行相应命令;如果存在跳过此步骤 - name: Run the...,脚本本身不用进行授权,即可利用script模块批量执行脚本 copy模块 将本地数据传输到远端,或者将远程节点上的数据进行移动 选项参数 选项说明 backup (重要参数) 创建备份文件包含时间戳信息...copy和template模块 如果指定参数为link # 符号链接将被创建或更改。...# 请注意,定义文件不存在不会失败,只是输出没有发生任何改变的结果 如果指定参数为touch # 如果路径不存在将创建一个空文件,如果文件或目录存在将接收更新的文件访问和修改时间(类似于“touch

    2.9K70

    linux安全基线配置全解析(付脚本)

    1.基线 即安全基线配置,诸如操作系统、中间件和数据库的一个整体配置,这个版本中各项配置都符合安全方面的标准。比如在系统安装后需要按安全基线标准,将新机器中各项配置调整到一个安全、高效、合理的数值。...将抓取到的实际值和标准值进行对比,将不符合的项显示出来,最终以报告 的形式体现出扫描结果有的工具将配置采集和配置对比分开,通过自动化脚本采集配置后再通过特别的软件转换为适合人类阅读的文档 3.基线加固自动化脚本的编写...本篇文章主要是记录和学习安全加固脚本,首先放几张安全加固shell脚本的命令语法: 基本命令语法介绍完了,借用网上的脚本来学习: 在执行脚本前需要提前做好备份: #!...login文件:login是控制用户登录的文件,一旦被篡改或删除,系统将无法切换用户或登陆用户 user/bin/passwd是一个命令,可以为用户添加、更改密码,但是,用户的密码并不保存在/etc/passwd..." echo "第二次重复检查时,则会对MD5DB中的MD5值进行匹配,来判断文件是否被更改过" file="/etc/md5db" if [ -e "$file" ]; then md5sum -c

    2.9K22

    DBeaverEE for Mac(数据库管理工具)

    进阶安全性 1、使用Kerberos或Active Directory身份验证与公司用户管理系统集成。 2、将数据库密码保存在受主密码保护的安全存储中,或使用本机OS密码加密的存储。...包括: -号码 -随机字符串 -名字 -地址 -*** -域和IP地址 -自定义正则表达式 -灵活的数字***器 -还有很多 SQL编辑器 1、将脚本组织到文件夹中,并为特定脚本重新分配数据库连接 2、...**标准SQL92 DDL 4、能够编辑/重命名/删除连接和大多数数据库对象 5、全局和本地过滤器,能够按名称过滤数据库对象 数据传输 1、将数据导出到文件或另一个数据库表中,并可以选择创建目标表(如果不存在...) 2、支持的文件格式:CSV,HTML,XML,JSON,XLS,XLSX 3、将数据直接从CSV文件导入数据库表。...2、比较结果可以表示为: -HTML报告 -DDL更改脚本 -差异图 -液基曲棍球 3、可以执行数据库结构同步 客户支持 1、企业版的用户可以访问特殊的在线支持系统。

    1.8K20

    写好Shell脚本那些不得不知道的细节

    想写好Shell脚本,有很多细节不得不知道,细节的不注意会给脚本调试带来很多麻烦,甚至导致运行的结果天差地别,下面总结了我实际工作中遇到的18大细节,分享给大家。 1....Shell四则运算 在我们日常的shell编程中,经常需要进行数值的运算,而Shell的四则运算有很多细节需要注意,稍不留神就容易出错。...echo"string"|md5sum与 echo-n"string"|md5sum结果不一致。而 echo-n"string"|md5sum才是正确的结果。 14..../等形式的相对变量,使用之后脚本的移植性将变得极差,另外如果脚本放在crontab内运行,相对路径基本无法识别。...x权限对于目录是非常重要,但是一般文件的创建则不应该有执行的权限,因为一般文件通常是用于数据的记录,自然不需要执限了。

    1.9K10

    打造企业级自动化运维平台系列(七):Jenkis 部署 Springboot 应用实践

    选择管理凭据 点击Jenkins 点击全局凭据 点击添加凭据 输入Token:选择GitLab API token,然后输入前一步在GitLab中创建好的token 创建成功:点击Create按钮即可创建凭据...准备脚本 此脚本的作用就是将Jenkins传到运行服务器的Jar包给跑起来;下面只是一个最基础的脚本,个人可以根据实际的使用过程,再进行调整; #!...上传成功之后,会在/opt/jenkins/package目录下看到所有的包信息: 拷贝完之后,将执行shell脚本,单模块和多模块执行的命令仅仅为参数上的区别: 单模块:以spring-boot-001...:初次配置的时候,容易出现异常情况,为了方便排查问题,可以勾上下图左侧的选项,输出远端服务器执行日志;下图右侧中的日志就是远端执行shell脚本的输出;不勾选将不会有这些日志。...为了验证这个问题,对项目连续打两次包,分别得到两个相同大小的a.jar和b.jar;然后做了MD5计算,发现确实不一样: 然后Beyound对两个包进行比较,发现除了修改时间不同,文件内容也都是一摸一样的

    63020

    Linux中文件MD5校验

    md5sum命令用于生成文件的md5数字摘要,并可以验证文件内容是否发生了改变,间接地还可以检验两个文件内容是否完全相同。...因为md5sum是读取文件内容来计算校验码的,因此只能验证文件内容,而无法验证文件属性。...由于生成的md5信息中,每个md5值后都紧跟着对应的文件的路径(可能是相对路径),于是将生成的md5保存到某个文件中,以后可以使用该文件来检查md5值对应文件内容是否发生了修改。...例如,将上述两个文件的md5信息保存到fs.md5sum中,然后使用"md5sum -c"可以检查源文件是否完整或是否被修改过。...1 通过比较md5sum的值,可以判断出多个文件的内容是否完全一致,但肉眼判断并不方便,所以写出脚本批量判断。脚本见:shell脚本示例:批量比较多个文件的内容是否相同。

    5.7K10

    Linux命令大全,从A到Z都有总结,封神之作!

    ed 用于启动 ed 文本编辑器,它是一个基于行的文本编辑器,具有最小的界面,这使得处理文本文件的复杂性降低,即创建、编辑、显示和操作文件 egrep 将模式视为扩展的正则表达式并打印出与模式匹配的行...expa 将制表符转换为文件中的空格,当未指定文件时,它会从标准输入中读取 expect 此命令或脚本语言适用于需要用户输入的脚本,通过提供输入来自动执行任务 export 是 bash shell...fc 用于列出、编辑或重新执行先前输入到交互式 shell 中的命令 fc-cache 扫描字体目录并为使用 fontconfig 进行字体处理的应用程序构建字体缓存 fc-list 用于列出可用的字体和字体样式...scriptreplay 用于重放脚本命令记录的日志文件中存储的 typescript/terminal_activity sdiff 用于比较两个文件,然后将结果以并排格式写入标准输出...虚拟作业有助于延迟执行 source 用于读取和执行文件的内容(通常是一组命令),在当前 shell 脚本中作为参数传递 sort 用于对文件进行排序

    2.3K02

    600个常用Linux命令大全,从A到Z

    Linux 中处理包 aptitude 开放高度内置的接口与机器的包管理器交互 ar 用于从档案中创建、修改和提取文件 arch 用于打印计算机架构 arp 操纵系统的 ARP 缓存,允许完整转储 ARP...exit 用于退出当前运行的shell expa 将制表符转换为文件中的空格,当未指定文件时,它会从标准输入中读取 expect 此命令或脚本语言适用于需要用户输入的脚本,通过提供输入来自动执行任务...用于打印给定数字的质因数,从命令行给出或从标准输入读取 fc 用于列出、编辑或重新执行先前输入到交互式 shell 中的命令 fc-cache 扫描字体目录并为使用 fontconfig 进行字体处理的应用程序构建字体缓存...O 命令 描述 od 用于将输入的内容以八进制格式为默认格式进行不同格式的转换 P 命令 描述 passwd 用于更改用户帐户密码 paste 用于水平连接文件(并行合并),方法是输出由来自每个指定文件的行组成的行...虚拟作业有助于延迟执行 source 用于读取和执行文件的内容(通常是一组命令),在当前 shell 脚本中作为参数传递 sort 用于对文件进行排序,按特定顺序排列记录 split 用于将大文件拆分成小文件

    54311

    Linux Shell 脚本

    变量是计算机编程中非常重要的一个概念。变量就是可以变化的量,与常量相反,例如一个固定的数字,字符属于常量。变量是计算机语言中能储存计算结果或能表示值的抽象概念。...定义一个变量,其实就是一种使用方便的占位符,用于引用计算机内存地址,该地址可以存储运行时可更改的程序信息。 变量需要赋值,这个值可以是一个数字,字符,也可以是更多内容。...~/08.shell $ b=2 1.2 shell 变量的引用 在 shell 中,直接使用“$”符,即可引用变量的值;一般配合 echo 命令可以打印变量的值; (base) xiehs...:59 ~/08.shell $ echo $b 2 如果变量名之后接有其他字符,可以使用”{}”进行区分。...通过 export 命令加入环境中。如果想永久修改,需要添加到家目录中的“.bashrc”文件中。

    19K10

    探索Linux的md5sum命令:保障数据完整性的利器

    在Linux系统中,md5sum命令就是这样一个强大的工具,它使用MD5算法为文件或数据块生成哈希值。md5sum命令简介md5sum是一个命令行工具,用于计算和显示文件的MD5哈希值。...md5sum命令的常用参数包括:-b:以二进制模式读取和输出哈希值(默认是十六进制)。-c:从文件中读取哈希值并进行校验。通常与-t参数一起使用,以指定输入文件的类型。...--tag:创建BSD风格的校验和文件(与-c参数一起使用)。--status:在输出校验结果时,仅返回退出状态(0表示成功,非0表示失败)。...校验和文件的保护:当你使用md5sum创建校验和文件时,请确保该文件与原始数据一起安全存储。如果校验和文件被篡改,那么它就无法用于验证数据的完整性。...自动化校验:你可以将md5sum命令与脚本结合使用,以自动化数据的校验过程。例如,你可以编写一个脚本,该脚本定期计算关键文件的哈希值,并与预期的哈希值进行比较。

    23410

    Ansible批量执行shell脚本,检查服务器的磁盘使用情况

    前言 本次实战目的: 批量管理200-300台机器,执行shell脚本任务等功能。 检查服务器的磁盘使用情况 在此,我们使用几台机器进行模拟即可。...执行shell脚本 要执行shell脚本,首先需要三个步骤 写好shell脚本 批量拷贝shell脚本到各台服务器 批量执行shell脚本 编写一个检查磁盘使用率的脚本 [root@server81...但是这篇主要是讲解ansible执行shell,暂时不继续深入研究这个脚本如何优化了。 拷贝脚本之前,先远程创建好准备拷贝过去的文件目录。...其中远程创建文件目录有两种方式,操作如下: shell命令方式 [root@server81 work]# ansible servers -m shell -a "mkdir -p /work/ansible...那么其实,现在已经可以开始拷贝脚本了,我个人是比较喜欢这种方式。但是也可以看到执行的时候出现了警告,最好使用file命令来执行。

    7.4K30

    Linux运维常用shell脚本之文件和字符串管理实例

    k的文件转移出去 编写shell脚本,将/usr/local/test目录下大于100k的文件转移到/tmp目录下: #!...8、监控目录,将新创建的文件名追加到日志中 需安装inotify-tools软件包。 #!...主要有两个脚本: 脚本1:将需要监控的目录的原始状态保存到LOG日志 脚本2:将脚本1的原始状态与本脚本比对,如果目录文件发生变化,则将变化的内容保存到日志。...1,监控 /home/www/ 目录改动,并将改动的文件rsync到/home/www3目录 2,监控方法为监控文件的md5值,如果md5值与上次不同,即发生改变 注:原理实际上利用的是du -sb输出值来判断文件的变化...rm -rf $TMP_B $TMP_C Shell脚本监控目录内文件改动 #!

    54310

    linux新手常用命令汇总

    命令 md5sum 代表(Compute和Check MD5 Message Digest)、md5 校验和(俗称hash) 用于匹配或验证由于文件传输错误、磁盘错误或非恶意干扰而可能已更改的文件的完整性...注意:用户可以将生成的md5sum与官方提供的进行匹配。...mkdir: 无法创建目录 rumenz:文件存在 (不要与上面输出中的文件混淆,你可能还记得我在开头所说的——在 Linux 中,每个文件、文件夹、驱动器、命令、脚本都被视为文件)。...它们用于将输出附加到文件而不是标准输出。> 符号将删除已存在的文件并创建一个新文件,因此出于安全原因,建议使用>>,它将写入输出而不覆盖或删除文件。...脚本中最常用的命令之一,它可以与通配符一起使用(在上面的块中描述),用于自定义和所需的文件复制。

    50930
    领券