当前位置: 首页 > 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.zskr.cn/news/41626.html

相关文章:

  • 2025 年 BA 自控系统厂家最新推荐排行榜:行业优质企业核心优势全面解析,含权威测评数据空调箱 BA 自控系统/新风机组 BA 自控系统公司推荐
  • 基础HTTP GET 接口请求测试
  • HTTP POST表单提交接口测试
  • API接口测试
  • ▇壳子
  • 2025 年自控系统厂家最新推荐榜:综合实力测评出炉,盘点行业权威品牌及选择指南文丘里阀环境监测/智能建筑能源管理自控系统/电力监控系统公司推荐
  • 2025年铝合金吊顶推荐供应商新排名,铝合金吊顶实力厂家推荐
  • 再获殊荣┃OpenCSG荣获专精特新中小企业认定
  • 从0到1实现:AI版你画我猜小游戏
  • 2025年靠谱的无油烟不粘锅最新TOP厂家排名
  • 2025年天然锰砂滤料源头厂家权威推荐:电解金属锰/电解二氧化锰/净水锰砂源头供应商精选
  • C++语言中指针变量int和取值操作ptr
  • 2025年口碑好的冷库挤塑板最新TOP厂家排名
  • 2025年口碑好的机械手用户口碑最好的厂家榜
  • Gitee Wiki:软件工厂时代的知识管理新范式
  • 界面控件Telerik UI for WPF 2025 Q3亮点 - 集成AI编码助手
  • 将京东标题改为百度
  • Rocky Linux 8.9配置Kubernetes集群详解,适用于CentOS环境
  • 2025年比较好的人造丝金丝绒厂家推荐及选择参考
  • 2025年6月deepseek关键词排名优化排行推荐:权威对比五强优劣
  • 【URP】Unity[后处理]胶片颗粒FilmGrain
  • 2025年比较好的7CrSiMnMoV钢材热门厂家推荐榜单
  • http-get接口测试
  • 2025年11月又红又痒用什么产品推荐榜:泛红瘙痒舒缓精华对比评价
  • streamlit基础API
  • 2025年口碑好的品牌阻尼铰链厂家推荐及选购指南
  • 2025 年 11 月配电柜/配电箱/开关柜厂家推荐排行榜,智能配电系统,低压配电柜,高压开关柜,工业配电箱公司推荐
  • 2025年靠谱的称重模块传感器热门厂家推荐榜单
  • 2025年靠谱的蒸发冷冷水机厂家推荐及选择参考
  • 2025年比较好的药用PE袋用户口碑最好的厂家榜