Bash 查找所有服务器实例的磁盘空间

Bash 查找所有服务器实例的磁盘空间,bash,Bash,在这个bash脚本中,服务器列表包含了应该为其计算磁盘空间的所有服务器列表。它们的范围从c1到c109。现在c100-c109中的服务器的容量低于50%,因此我必须得到以下消息: “有足够的可用磁盘空间” 但是,我得到了这个信息 “我似乎在用不存在的磁盘空间运行” 如果有人能帮我修一下,那就太棒了。如果您需要任何澄清,请告诉我。以下是脚本: #!/usr/bin/bash # This script does a very simple test for checking disk space.

在这个bash脚本中,服务器列表包含了应该为其计算磁盘空间的所有服务器列表。它们的范围从c1到c109。现在c100-c109中的服务器的容量低于50%,因此我必须得到以下消息:

“有足够的可用磁盘空间”

但是,我得到了这个信息

“我似乎在用不存在的磁盘空间运行”

如果有人能帮我修一下,那就太棒了。如果您需要任何澄清,请告诉我。以下是脚本:

#!/usr/bin/bash
# This script does a very simple test for checking disk space.
for VTIER in `cat serverlist`
do
space=$(ssh -q ${VTIER}@${VTIER} 'df -kh|grep ${ServerName}|cut -c 65-70')
echo "Checking disk space.... in ${VTIER}"
case $space in
[1-6]*)
Message="There is sufficient disk space available - $space full"
;;
[7-8]*)
Message="Keep an eye on the disk space - $space full."
;;
9[1-8])
Message="Better hurry with that new disk -  $space full."
;;
99)
Message="I'm drowning here! - $space full"
;;
*)
Message="I seem to be running with an nonexistent amount of disk space - $space full"
;;
esac
echo $Message
done
您的切割不正确:

marc@panic:/home/httpd/html$ df -kh|cut -c 65-70




marc@panic:/home/httpd/html$
注意空白行…这不仅仅是空白。这是削减产量。一旦包含
k
选项以强制设置块大小,块大小列将被删除,从而缩短每一行,因此实际上是从每一行的末尾开始剪切文本。您最好使用awk:

marc@panic:/home/httpd/html$ df -kh|awk '{print $5}'
Use%
7%
1%
1%
0%
1%
61%

您是否检查了正在评估的
space
的值?您好,感谢您确定了awk命令,它非常有用。但当我试图把它包括在我的脚本中。它不起作用。甚至我也尝试将awk赋值给一个变量,但它无法执行。