AI提示词
帮我写个shell脚本,我会给你一个hdfs路径的txt, 你帮我拼接一下 txt路径如下: /user/hive/warehouse/ods_s.db/rt_ppdai_pfl_transfour_tb_order /user/hive/warehouse/ods_s.db/rt_ppdai_pfl_transfour_tb_orde1 /user/hive/warehouse/ods_s.db/rt_ppdai_pfl_transfour_tb_orde2
读取txt, hdfs dfs -D ipc.client.fallback-to-simple-auth-allowed=true -du -s -h hdfs://rtha
拼接到这个后面
得到的结果是
hdfs dfs -D ipc.client.fallback-to-simple-auth-allowed=true -du -s -h
hdfs://rtha/user/hive/warehouse/ods_s.db/rt_ppdai_pfl_transfour_tb_order
查询后,会得到这个结果(这个是在最后一行,因为hdfs有很多日志)
96.3 M 288.9 M hdfs://rtha/user/hive/warehouse/ods_s.db/rt_ppdai_pfl_transfour_tb_order
把这个换算成GB,给我,保留小数点4位 输出一个csv为路径名称,GB大小
脚本
bash#!/bin/bash # 传入存放HDFS路径的文本文件,执行方式:bash hdfs_size_stat.sh hdfs_path_list.txt txt_file="$1" # 校验入参文件是否存在 if [ ! -f "${txt_file}" ];then echo "错误:文件 ${txt_file} 不存在" exit 1 fi # 输出csv表头 echo "hdfs_path,size_gb" > hdfs_size_result.csv # 循环读取每一行HDFS路径 while read -r hdfs_path; do # 跳过空行 if [[ -z "${hdfs_path}" ]];then continue fi # 拼接完整hdfs命令执行 full_cmd="hdfs dfs -D ipc.client.fallback-to-simple-auth-allowed=true -du -s -h hdfs://rtha${hdfs_path}" echo "正在统计:hdfs://rtha${hdfs_path}" # 执行命令,取最后一行有效结果 res_line=$(${full_cmd} 2>/dev/null | tail -n 1) # 提取第一列大小字符串,例如 96.3 M size_str=$(echo "${res_line}" | awk '{print $1,$2}') unit=$(echo "${res_line}" | awk '{print $2}') num_val=$(echo "${res_line}" | awk '{print $1}') # 统一换算字节数 case ${unit} in B) bytes=$(echo "${num_val}" | awk '{print $1}') ;; K) bytes=$(echo "${num_val} * 1024" | bc -l) ;; M) bytes=$(echo "${num_val} * 1024 * 1024" | bc -l) ;; G) bytes=$(echo "${num_val} * 1024 * 1024 * 1024" | bc -l) ;; T) bytes=$(echo "${num_val} * 1024 * 1024 * 1024 * 1024" | bc -l) ;; *) bytes=0 ;; esac # 字节换算GB,保留4位小数:1GB=1024^3 Byte gb_size=$(echo "scale=4; ${bytes} / (1024*1024*1024)" | bc -l) # 写入csv echo "hdfs://rtha${hdfs_path},${gb_size}" >> hdfs_size_result.csv done < "${txt_file}" echo "执行完成,结果文件:hdfs_size_result.csv"使用方式
使用步骤
- 把上面脚本保存为
hdfs_size_stat.sh- 准备你的路径文本
hdfs_path_list.txt,内容:plaintext
/user/hive/warehouse/ods_s.db/rt_ppdai_pfl_transfour_tb_order /user/hive/warehouse/ods_s.db/rt_ppdai_pfl_transfour_tb_orde1 /user/hive/warehouse/ods_s.db/rt_ppdai_pfl_transfour_tb_orde2
- 授权 + 运行
bash
运行
chmod +x hdfs_size_stat.sh bash hdfs_size_stat.sh hdfs_path_list.txt说明
- 自动拼接前缀
hdfs://rtha,带上你指定的 HDFS 参数;- 兼容 B/K/M/G/T 单位自动换算 GB;
- 结果写入
hdfs_size_result.csv,格式:完整HDFS路径,大小(GB,四位小数);- 屏蔽命令报错日志,只抓取
-du -s -h最后一行容量数据;- 自动跳过 txt 里的空白行。
hdfs获取所有路径大小的脚本
我要用代码向我喜欢的女孩表白2026-08-11 15:38
相关推荐
2601_962780911 小时前
2027校招准备:统计学专业如何用数据能力应聘企业经营管理管培生阿明副业观察2 小时前
AI视频生成技术全解:生成方法、操作流程与选型指南Leo.yuan3 小时前
FineBI AI原生版:Agent主动规划分析路径,让数据成为企业经营决策的顾问VibeCoding工程之道3 小时前
第八章 最终格局:不是 AI 淘汰人,是「依赖 AI 的人」淘汰自己大大大大晴天4 小时前
每天认识一个组件:Apache Kafka2501_933670794 小时前
2027秋招岗位能力分组:数据科学与大数据技术专业如何组织技能与项目野生数据人5 小时前
日志平台每日巡检我压成了一条命令链:从 SHOW BACKENDS 到扩缩容的完整步骤liliangcsdn5 小时前
如何用DrissionPage进行网页自动化野生数据人6 小时前
日志平台运维速查表:巡检命令、阈值、参数,一张贴墙xiaogai_gai6 小时前
物料主数据从ERP同步到电商中台:基于轻易云的编码映射与增量全量双轨实践