1

如果负载超过 15,我试图让服务器向我发送电子邮件,但我不断收到以下错误。

root@echo [~]# sh load.sh
load.sh: line 9: syntax error near unexpected token `fi'
load.sh: line 9: `fi'

这是load.sh

#!/bin/bash
SUBJECT="`hostname`server load is high"
TO=myemail@gmail.com
uptime > /tmp/load
if [ `uptime | awk '{ print$11 }' | cut -d. -f1` -gt 1 ];
then
mail -s "$SUBJECT" $TO < /tmp/load
exit
fi

服务器 unname -a

Linux 2.6.18-308.24.1.el5 #1 SMP 2012 年 12 月 4 日星期二 17:43:34 EST x86_64 x86_64 x86_64 GNU/Linux

4

1 回答 1

0

我并没有真正得到与您相同的错误,但您已经可以测试此解决方案:

if [ `uptime | awk '{ print$11 }' | cut -d. -f1` -gt 1 ];

此条件尝试将浮点数与整数进行比较。我将使用扩展测试命令进行此测试。如果您没有将then关键字放在与您的条件相同的行上,您可能会忘记分号:

if [[ `uptime | awk '{ print$11 }' | cut -d. -f1` > 1 ]]
then
   mail -s "$SUBJECT" $TO < /tmp/load
   exit
fi
于 2013-08-07T08:31:53.453 回答