SH 脚本:Red Hat Linux Enterprise(Santiago 和 Tikanga)的问题
SH Script: Problem with Red Hat Linux Enterprise (Santiago and Tikanga)
我制作了一个脚本,以便在 root、var、tmp、opt 和 usr 等分区上获得免费 space。但是我有 3200 个运行良好的系统,还有另外 1186 个系统,主要是 RHEL(Tikanga 和 Santiago),以及一些运行异常的 CentOS 派生版本。但是像RHEL(麦婆)这样的系统运行的很好。
此外,我无法亲自连接到那些服务器以进行故障排除。我可以 运行 远程脚本。
#!/bin/sh
df -h / /var /tmp /opt /usr > /freespace.txt
rootSpace=$(awk 'NR==2 { print }' /freespace.txt)
varSpace=$(awk 'NR==3 { print }' /freespace.txt)
tmpSpace=$(awk 'NR==4 { print }' /freespace.txt)
optSpace=$(awk 'NR==5 { print }' /freespace.txt)
usrSpace=$(awk 'NR==6 { print }' /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 对它们进行排序?
如果你想解析 df 的输出,我建议使用 df -hP
。
-P
: use the POSIX output format
无论设备名称多长,这都会使所有信息保持在一行中。
我制作了一个脚本,以便在 root、var、tmp、opt 和 usr 等分区上获得免费 space。但是我有 3200 个运行良好的系统,还有另外 1186 个系统,主要是 RHEL(Tikanga 和 Santiago),以及一些运行异常的 CentOS 派生版本。但是像RHEL(麦婆)这样的系统运行的很好。
此外,我无法亲自连接到那些服务器以进行故障排除。我可以 运行 远程脚本。
#!/bin/sh
df -h / /var /tmp /opt /usr > /freespace.txt
rootSpace=$(awk 'NR==2 { print }' /freespace.txt)
varSpace=$(awk 'NR==3 { print }' /freespace.txt)
tmpSpace=$(awk 'NR==4 { print }' /freespace.txt)
optSpace=$(awk 'NR==5 { print }' /freespace.txt)
usrSpace=$(awk 'NR==6 { print }' /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 对它们进行排序?
如果你想解析 df 的输出,我建议使用 df -hP
。
-P
: use the POSIX output format
无论设备名称多长,这都会使所有信息保持在一行中。