0

在此 bash 脚本中,服务器列表包含应为其计算磁盘空间的所有 serer 列表。它们的范围从 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
4

1 回答 1

1

您的剪辑不正确:

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%
于 2013-05-09T19:08:08.937 回答