free -t 是 Linux 中用于在 free 命令输出末尾添加总计行的原生选项,汇总物理内存和交换空间各列数值,配合 -h 可实现人类可读单位与总计显示,适用于巡检报告。

Free-T 并不是 Linux 系统原生命令,你可能指的是 free -h(带人类可读单位)或误记为 “free -t”(显示总计行)。Linux 中用于内存统计的标准命令是 free,而 -t 选项正是用来在输出末尾添加一行“总计(Total)”,包含物理内存(Mem)和交换空间(Swap)的合计值,非常适合作为巡检报告中的资源概况摘要。
确认使用 free -t 获取含总计的内存报表
free -t 会在标准输出最后增加一行 Total,汇总 Mem 和 Swap 各列数值(如 total、used、free、shared、buff/cache、available)。这是最轻量、无需安装额外工具的方式,所有主流发行版均默认支持。
- 执行命令:free -h -t(-h 表示以 GiB/MiB 自动缩放,-t 显示总计行)
- 输出中最后一行即为“Total”,清晰反映整机内存与交换区总容量及使用情况
- 注意:Total 行的 used 是各内存区域 used 的简单加总(含 Mem+Swap),不具直接业务含义,但 total 列对容量规划有参考价值
生成适合巡检报告的简洁格式
巡检报告需简明、稳定、易解析。建议过滤无关信息,保留关键字段,并添加时间戳:
- 推荐命令:date '+%F %T'; free -h -t | awk 'NR==1 || NR==2 || NR==NF'
- 说明:第一行输出当前时间;第二行是表头("total used free shared buff/cache available”);最后一行(NR==NF)即为 Total 行
- 若只需 Mem 总计(不含 Swap),可用:free -h -t | sed -n '1p;2p;$p' | grep -E '^(total|Mem|Total)'
集成到巡检脚本并导出为文本/CSV
将内存报表自动纳入每日巡检流程,提升效率与一致性:
- 写入 shell 脚本(如 check_mem.sh):
#!/bin/bash
echo "=== 内存资源概况($(date))===" >> /var/log/inspect/memory_report.log
free -h -t >> /var/log/inspect/memory_report.log
echo "" >> /var/log/inspect/memory_report.log - 导出为 CSV(便于 Excel 分析):
free -t | awk 'NR==1{print "Type,"$0} NR==2{print "Mem,"$0} NR==NF{print "Total,"$0}' | sed 's/ \+/,/g' > mem_summary.csv
注意事项与常见误区
避免因理解偏差导致误读数据:
- -t 不等于“总计使用率”:Total 行只是数值加总,不代表系统整体内存压力;应重点关注 Mem 行的 available 值(Linux 3.14+)判断真实可用内存
- 不要混淆 free -t 与 free -m -t:后者强制以 MiB 显示,单位固定但不如 -h 友好;巡检建议统一用 -h
- 某些旧内核(free -h | awk 'NR==2 {print $7}' 提取 available(若存在),否则参考 free + buff/cache 综合评估


















