【问题标题】:SH Script: Problem with Red Hat Linux Enterprise (Santiago and Tikanga)SH 脚本:Red Hat Linux Enterprise 的问题(Santiago 和 Tikanga)
【发布时间】:2019-08-22 12:01:48
【问题描述】:

我已经编写了一个脚本,以便在 root、var、tmp、opt 和 usr 等分区上获得可用空间。但是我有 3200 个运行良好的系统,还有 1186 个系统,主要是 RHEL(Tikanga 和 Santiago),还有一些运行异常的 CentOS 衍生系统。但是像 RHEL (Maipo) 这样的系统运行良好。

另外,我无法亲自连接到这些服务器以进行故障排除。我只能远程运行脚本。

#!/bin/sh

df -h / /var /tmp /opt /usr > /freespace.txt

rootSpace=$(awk 'NR==2 { print $4 }' /freespace.txt)
varSpace=$(awk 'NR==3 { print $4 }' /freespace.txt)
tmpSpace=$(awk 'NR==4 { print $4 }' /freespace.txt)
optSpace=$(awk 'NR==5 { print $4 }' /freespace.txt)
usrSpace=$(awk 'NR==6 { print $4 }' /freespace.txt)

customSpace="root=$rootSpace,var=$varSpace,tmp=$tmpSpace,opt=$optSpace,usr=$usrSpace"
  • 我希望输出类似于 root=890M,var=3.1G,tmp=5.0G,opt=842M,usr=1.4G
  • 但我收到 root=,var=,tmp=28%,opt=,usr=5% 之类的输出

为什么 DF 不提供相同的输出以便使用 AWK 对它们进行排序?

【问题讨论】:

  • 调试,能不能远程获取freespace.txt的内容?
  • 您可以编辑您的 Q 以包含您的文本 /freespace.txt 文件吗? (甚至 1 个来自工作服务器和 1 个来自不工作的服务器?)。我敢打赌,您会发现信息的布局存在显着差异。而不是用户NR==2(等),我会匹配特定的文本,即/\/root/{print $4}'。祝你好运。
  • @CCH 遗憾的是,这是我遇到的主要问题。我无法调试,因为我没有完整的权限并且它很复杂
  • @shellter Tommorow 我会回来提供反馈:)

标签: bash shell redhat


【解决方案1】:

如果你想解析 df 的输出,我建议使用df -hP

-P:使用 POSIX 输出格式

无论设备名称有多长,这都会将所有信息保持在一行中。

【讨论】:

    猜你喜欢
    • 2013-10-26
    • 2020-07-05
    • 2013-11-07
    • 1970-01-01
    • 2016-11-30
    • 2013-03-03
    • 2018-03-27
    • 2023-03-20
    • 1970-01-01
    相关资源
    最近更新 更多