当前位置: 首页 > news >正文

centos7 文件夹下 按年月统计文件大小

我是一个运维人员,我想统计centos7.5环境下,/app/minio/file-bucket文件夹内,文件按照日期,按年月统计文件总大小

当然可以!我来帮您改造这个命令,使其能够按照年月分组统计。当前的命令只能按月份统计,无法区分不同年份的同月份。以下是几种改进方案:## 方案一:基于ls命令的改造(简单版)```bash ls
-l --time-style=+"%Y-%m" /app/minio/file-bucket | awk ' {# 提取年月和文件大小year_month = $6;size = $5;# 如果是文件且不是目录行if (year_month != "" && size ~ /^[0-9]+$/) {months[year_month] += size;} } END {# 按年月排序输出n = asorti(months, sorted);for (i = 1; i <= n; i++) {month = sorted[i];printf "年月: %s, 总大小: %.2f MB, %.2f GB\n", month, months[month]/1024/1024, months[month]/1024/1024/1024;} }' ```## 方案二:使用完整日期格式(推荐)```bash ls -l --time-style=+"%Y-%m-%d" /app/minio/file-bucket | awk ' {# 提取完整日期和文件大小date_str = $6;size = $5;# 如果是文件且不是目录行if (date_str != "" && size ~ /^[0-9]+$/) {# 提取年月部分 (前7个字符)year_month = substr(date_str, 1, 7);months[year_month] += size;count[year_month]++;} } END {# 按年月排序输出n = asorti(months, sorted);printf "%-10s %12s %12s %12s\n", "年月", "文件数量", "大小(MB)", "大小(GB)";print "----------------------------------------------------";for (i = 1; i <= n; i++) {month = sorted[i];printf "%-10s %12d %12.2f %12.2f\n", month, count[month], months[month]/1024/1024, months[month]/1024/1024/1024;} }' ```## 方案三:使用find命令获取更准确的信息```bash find /app/minio/file-bucket -type f -printf "%TY-%Tm %s\n" | awk ' {year_month = $1;size = $2;total[year_month] += size;count[year_month]++; } END {# 按年月排序输出n = asorti(total, sorted);printf "%-10s %12s %12s %12s\n", "年月", "文件数量", "大小(MB)", "大小(GB)";print "----------------------------------------------------";for (i = 1; i <= n; i++) {month = sorted[i];printf "%-10s %12d %12.2f %12.2f\n", month, count[month], total[month]/1024/1024, total[month]/1024/1024/1024;} }' ```## 方案四:功能完整的统计脚本```bash #!/bin/bashtarget_dir="/app/minio/file-bucket"echo "正在统计目录: $target_dir" echo "=========================================="ls -l --time-style=+"%Y-%m-%d" "$target_dir" | awk ' BEGIN {total_size = 0;total_files = 0; } {date_str = $6;size = $5;if (date_str != "" && size ~ /^[0-9]+$/) {year_month = substr(date_str, 1, 7);months[year_month] += size;count[year_month]++;total_size += size;total_files++;} } END {# 输出表头printf "%-10s %12s %12s %12s\n", "年月", "文件数量", "大小(MB)", "大小(GB)";print "----------------------------------------------------";# 按年月排序输出n = asorti(months, sorted);for (i = 1; i <= n; i++) {month = sorted[i];printf "%-10s %12d %12.2f %12.2f\n", month, count[month], months[month]/1024/1024, months[month]/1024/1024/1024;}print "----------------------------------------------------";printf "%-10s %12d %12.2f %12.2f\n", "总计", total_files, total_size/1024/1024, total_size/1024/1024/1024; }' ```## 各方案对比:- **方案一**:最接近您原有命令的改造,简单直接 - **方案二**:推荐使用,显示完整信息且格式美观 - **方案三**:使用find命令,更适合大量文件的情况 - **方案四**:功能最完整,包含总计信息## 使用建议:1. **如果目录文件不多**,使用方案二 2. **如果文件数量很大**,使用方案三(find命令效率更高) 3. **需要定期统计**,可以使用方案四保存为脚本您可以根据实际需求选择合适的方案。方案二应该是您最需要的,它在您原有命令基础上增加了年月分组和更好的显示格式。

 

http://www.jsqmd.com/news/32998/

相关文章:

  • 完整教程:舆情处置的智能化进阶:Infoseek舆情系统如何构建企业数字免疫体系
  • 2025 年 BA 自控系统厂家最新推荐排行榜:行业优质企业核心优势全面解析,含权威测评数据空调箱 BA 自控系统/新风机组 BA 自控系统公司推荐
  • 基础HTTP GET 接口请求测试
  • HTTP POST表单提交接口测试
  • 2025年铜陵钨杆回收公司权威推荐榜单:钨条回收/废钼回收/钼铁回收源头公司精选
  • API接口测试
  • ▇壳子
  • AI元人文构想:人机共生智慧文明治理新范式整理报告
  • 2025年湖南专利申请公司权威推荐榜单:期刊论文公司/专著合著出版公司/重点课题申报服务机构精选
  • 基础HTTP GET接口请求测试
  • 2025年比较好的设计感保温杯厂家推荐及选择参考
  • 2025 年自控系统厂家最新推荐榜:综合实力测评出炉,盘点行业权威品牌及选择指南文丘里阀环境监测/智能建筑能源管理自控系统/电力监控系统公司推荐
  • HTTPPOST表单提交接口测试
  • 2025年铝合金吊顶推荐供应商新排名,铝合金吊顶实力厂家推荐
  • 再获殊荣┃OpenCSG荣获专精特新中小企业认定
  • 中国项目管理工具市场迎来智能化变革:Gitee引领技术团队协作新范式
  • 从0到1实现:AI版你画我猜小游戏
  • 能变声的录放音语音芯片WT2003Hx
  • 2025年靠谱的无油烟不粘锅最新TOP厂家排名
  • 企业级AI知识库革命:开源免费的PandaWiki如何让团队效率飙升300%?
  • get接口请求测试
  • 2025年天然锰砂滤料源头厂家权威推荐:电解金属锰/电解二氧化锰/净水锰砂源头供应商精选
  • C++语言中指针变量int和取值操作ptr
  • 2025年6月生成式引擎优化推荐榜:五强性能参数与口碑评分全解析
  • 2025年比较好的玻璃钢电表箱厂家推荐及采购参考
  • 2025年知名的多品种小批量零件机械加工TOP实力厂家推荐榜
  • 2025年智能铝合金门窗定制厂家权威推荐榜单:智能门窗控制系统/高性能系统门窗/高性能节能门窗源头厂家精选
  • 2025年口碑好的郑州沙盘模型厂家推荐及选择指南
  • 2025 AI 落地元年:从技术突破到行业重构的实践图景 - 实践
  • 2025年口碑好的冷库挤塑板最新TOP厂家排名