我试图让服务器给我发电子邮件,如果负载超过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
服务器uname -a
Linux 2.6.18-308.24.1.el5#1 SMP Tue Dec 4 17:43:34 EST 2012 x86_64 x86_64 x86_64 GNU / Linux
答案 0 :(得分:0)
我并没有真正得到与您相同的错误,但您已经可以测试此解决方案了:
if [ `uptime | awk '{ print$11 }' | cut -d. -f1` -gt 1 ];
此条件尝试将float与整数进行比较。我会用an extended test command进行测试。如果你没有将then
关键字放在与你的条件相同的行上,你就可以忘记分号:
if [[ `uptime | awk '{ print$11 }' | cut -d. -f1` > 1 ]]
then
mail -s "$SUBJECT" $TO < /tmp/load
exit
fi