【发布时间】: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 我会回来提供反馈:)