AIX 中的剪切命令
Cut command in AIX
我们想在 AIX 7 上使用 shell 脚本自动执行磁盘清理过程。我们需要编写 shell 脚本根据磁盘百分比清理磁盘
df -Pg 的示例输出
user:host:/:>df -Pg
Filesystem GB blocks Used Available Capacity Mounted on
/dev/hd4 5.00 0.05 4.95 2% /
/dev/hd2 6.00 3.63 2.37 61% /usr
/dev/work1lv 1074.50 377.46 697.04 36% /work1
... some lines are ommitted and it continues
我们只想使用 cut 命令检查容量百分比
我们不能只列出第 5 列,它作为 cut 命令 -f 的参数给出。如果成功正常显示,我们将继续使用shell脚本清理部分。
df -Pg | cut -f5 -d' '
上面命令的输出不是我们所期望的。
cut
命令将每个分隔符视为一个新字段的开始;如果您告诉它根据 space 和制表符分隔输出,则每个 space 都会创建一个新字段。这就是你得到意外输出的原因。
打印字段 5 可以使用 awk
更直接地完成,它将任意数量的连续 space 组合成一个分隔符:df -Pg | awk '{print }'
。不过,您仍然有两个问题需要解决:跳过 header 并考虑在 mount-point 中包含 space 的文件系统。您可以很容易地跳过 header,因为它是输出的第一行:df -Pg | awk 'NR > 1 {print }'
,但处理其余字段需要更多工作。
我建议您对 the df
command 使用不同的选项来请求 colon-separated 具有特定字段的输出:df -c -F %z %m
。 -F
选项自动包含文件系统设备和块字段,因此您希望跳过这些字段。我们仍然想跳过 header,所以我们最终得到:
df -c -F %z %m | sed 1d | cut -d: -f3,4
...删除第一行,然后只输出第三和第四个colon-delimited字段。这应该为您的监控程序提供相关信息。根据您正在执行的操作,如果您需要检查可用卷组 space,您可能希望包括字段 1(设备)。请注意 df
输出将 space 添加到 mount-point 字段的开头(这可能是请求 colon-separated 输出及其对 -F 解析的副作用争论)。另请注意,您可能会看到 network-mounted 个文件系统;如果您只想查看本地文件系统,请添加 -T local
选项:
df -T local -c -F %z %m | sed 1d | cut -d: -f3,4
我们想在 AIX 7 上使用 shell 脚本自动执行磁盘清理过程。我们需要编写 shell 脚本根据磁盘百分比清理磁盘
df -Pg 的示例输出
user:host:/:>df -Pg
Filesystem GB blocks Used Available Capacity Mounted on
/dev/hd4 5.00 0.05 4.95 2% /
/dev/hd2 6.00 3.63 2.37 61% /usr
/dev/work1lv 1074.50 377.46 697.04 36% /work1
... some lines are ommitted and it continues
我们只想使用 cut 命令检查容量百分比 我们不能只列出第 5 列,它作为 cut 命令 -f 的参数给出。如果成功正常显示,我们将继续使用shell脚本清理部分。
df -Pg | cut -f5 -d' '
上面命令的输出不是我们所期望的。
cut
命令将每个分隔符视为一个新字段的开始;如果您告诉它根据 space 和制表符分隔输出,则每个 space 都会创建一个新字段。这就是你得到意外输出的原因。
打印字段 5 可以使用 awk
更直接地完成,它将任意数量的连续 space 组合成一个分隔符:df -Pg | awk '{print }'
。不过,您仍然有两个问题需要解决:跳过 header 并考虑在 mount-point 中包含 space 的文件系统。您可以很容易地跳过 header,因为它是输出的第一行:df -Pg | awk 'NR > 1 {print }'
,但处理其余字段需要更多工作。
我建议您对 the df
command 使用不同的选项来请求 colon-separated 具有特定字段的输出:df -c -F %z %m
。 -F
选项自动包含文件系统设备和块字段,因此您希望跳过这些字段。我们仍然想跳过 header,所以我们最终得到:
df -c -F %z %m | sed 1d | cut -d: -f3,4
...删除第一行,然后只输出第三和第四个colon-delimited字段。这应该为您的监控程序提供相关信息。根据您正在执行的操作,如果您需要检查可用卷组 space,您可能希望包括字段 1(设备)。请注意 df
输出将 space 添加到 mount-point 字段的开头(这可能是请求 colon-separated 输出及其对 -F 解析的副作用争论)。另请注意,您可能会看到 network-mounted 个文件系统;如果您只想查看本地文件系统,请添加 -T local
选项:
df -T local -c -F %z %m | sed 1d | cut -d: -f3,4