在Linux Shell中查询每个节点分区容量大于50GB的磁盘空间使用率,可以使用一系列命令组合来实现。这里我们使用df命令来获取磁盘空间使用情况,结合awk来筛选和计算使用率,以及grepsort等命令来进一步处理输出。请注意,这个方法是在单个节点上执行的,如果你需要在多个节点上执行此操作,则可能需要借助SSH等工具进行远程执行或者在每个节点上单独执行以下命令后汇总结果。

以下是一个示例脚本,用于找出容量大于50GB且计算使用率大于某个阈值(比如80%)的分区:

#!/bin/bash

# 设置阈值(例如,查找使用率大于80%的分区)
THRESHOLD=80

# 使用df命令获取磁盘空间信息,排除类型为tmpfs和devtmpfs的临时文件系统,
# 然后使用awk计算使用率并筛选出容量大于50GB且使用率超过阈值的分区
df -hT --exclude-type=tmpfs --exclude-type=devtmpfs | awk 'NR>1 && $2!="udev" && $2!="tmpfs" && $3 > "50G" {used=$3; size=$2; percent=$5; sub("%","",percent); if (percent+0 > '"$THRESHOLD"' ) print "分区: " $6 ", 总容量: " size ", 已用: " used ", 使用率: " percent "%"}'

这个脚本的工作流程如下:

  1. df -hT:以人类可读的格式(-h)和显示文件系统类型(-T)的方式列出磁盘空间使用情况。
  2. --exclude-type=tmpfs --exclude-type=devtmpfs:排除tmpfs和devtmpfs这类非持久存储的文件系统。
  3. awk:处理df的输出,忽略标题行(NR>1),排除udev和tmpfs类型的分区,计算并筛选出容量超过50GB且使用率超过指定阈值的分区。

请根据实际情况调整THRESHOLD变量的值以匹配你的需求。此外,这个脚本简单明了,但可能需要根据具体环境做适当修改。如果你想在多个节点上执行此操作,可能需要考虑使用Ansible、SaltStack等配置管理工具,或者编写脚本来循环调用SSH执行上述命令。