首页
学习
活动
专区
工具
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

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

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

    2.9K70

    使用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

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

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

    2.7K22

    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对两个包进行比较,发现除了修改时间不同,文件内容也都是一摸一样

    51720

    Linux中文件MD5校验

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

    5.6K10

    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 用于文件拆分成小文件

    48211

    Linux Shell 脚本

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

    19K10

    探索Linuxmd5sum命令:保障数据完整性利器

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

    18710

    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.2K30

    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脚本监控目录内文件改动 #!

    52610

    Ansible服务常用命令模块详细解析

    user模块用于创建新用户和更改,删除已存在用户,其中name项用来指明创建用户名称 user模块是请求是useadd,userdel,usermod三个指令 创建一个名为test01用户: [...6 file 模块 在ansible中使用file模块来设置文件属性。其中使用path指定文件路径,使用src定义源文件路径,使用name或dest来替换创建文件符号链接。...下面我web服务器fstab.bk文件属主设为mysql,属组设为mysql,权限设为666 [root@promote ~]# ansible web -m file -a 'path=/opt...模块 ansibleshell模块可以在被管理主机上运行命令,并支持像管道符号等功能复杂命令。...11 script 模块 ansiblescript模块可以本地脚本复制到被管理主机上进行运行。需要注意是,使用相对路径来指定脚本

    97320
    领券