自动化上传新文件并检查MD5一致性脚本
需积分: 9 192 浏览量
更新于2024-09-09
收藏 1KB TXT 举报
该脚本是一个用于自动化上传文件并验证其MD5校验值的Shell脚本,主要用于Hadoop分布式文件系统(HDFS)的文件管理。以下是脚本的关键知识点:
1. **脚本环境**:
脚本是用KSH (Korn Shell)编写的,并且在"/home/hadoop/tt"目录下运行,这个目录可能是存储待上传文件的地方。
2. **文件列表获取**:
使用`ls -ltwendang | grep "^-" | awk '{print $9}'`命令来获取"wendang"目录下所有以减号开头(通常表示隐藏文件)的文件名,并将其保存到数组`filename`中。
3. **遍历文件**:
使用`for`循环迭代`filename`数组中的每个文件。循环变量`i`从0开始,递增直到数组长度减一。
4. **检查旧文件列表**:
首先,脚本会检查"oldfiles.log"文件是否存在。如果存在,它将计算当前处理的文件的MD5值(`md5sum wendang/${filename[$i]}" | awk '{print $1}')。
5. **MD5比较**:
通过`grep`命令查找"oldfiles.log"中是否已经有与当前文件MD5值匹配的记录。如果找到匹配项(`$? -eq 1`),说明文件已存在HDFS,脚本会跳过上传步骤。
6. **文件上传与更新**:
如果文件不在HDFS中(`$? -eq 0`),脚本会调用`hadoopfs-put`命令上传文件到"data"目录,并将新的MD5值追加到"oldfiles.log"。如果上传成功,原始文件会被删除。
7. **新文件处理**:
对于新添加的文件(未在"oldfiles.log"中有记录),脚本会新建"oldfiles.log"、计算MD5值、上传文件并更新日志,同时删除本地文件。
8. **错误处理**:
如果任何阶段出现错误,脚本会捕获错误码并输出相应的结果(如"fail"或"there is no files")。
这个脚本通过自动化的方式管理Hadoop环境下的文件上传,确保上传的新文件只有在MD5校验未发生变化时才上传,提高了效率并保持了数据的一致性。通过检查和更新"oldfiles.log",脚本还能跟踪文件的状态,便于后续维护和审计。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2022-10-26 上传
2023-12-01 上传
2021-04-06 上传
2021-04-25 上传
2019-12-17 上传
2019-08-09 上传
康康can
- 粉丝: 14
- 资源: 4
最新资源
- Raspberry Pi OpenCL驱动程序安装与QEMU仿真指南
- Apache RocketMQ Go客户端:全面支持与消息处理功能
- WStage平台:无线传感器网络阶段数据交互技术
- 基于Java SpringBoot和微信小程序的ssm智能仓储系统开发
- CorrectMe项目:自动更正与建议API的开发与应用
- IdeaBiz请求处理程序JAVA:自动化API调用与令牌管理
- 墨西哥面包店研讨会:介绍关键业绩指标(KPI)与评估标准
- 2014年Android音乐播放器源码学习分享
- CleverRecyclerView扩展库:滑动效果与特性增强
- 利用Python和SURF特征识别斑点猫图像
- Wurpr开源PHP MySQL包装器:安全易用且高效
- Scratch少儿编程:Kanon妹系闹钟音效素材包
- 食品分享社交应用的开发教程与功能介绍
- Cookies by lfj.io: 浏览数据智能管理与同步工具
- 掌握SSH框架与SpringMVC Hibernate集成教程
- C语言实现FFT算法及互相关性能优化指南