检测系统重启/关闭以避免使用监控工具出现误报

时间:2013-09-20 20:15:38

标签: bash

我有一个监控工具,用于检查TCP端口,然后在端口未监听时发出警报。我希望使运行状况检查更加智能,以便在系统关闭/重新启动时不会发出警报。我正在考虑做这样的事情:

#!/bin/bash
if [ "$(runlevel)" = "2" ] #I use "=" instead of "-eq" because runlevel might be "s"
then
  #do health check
else
  #skip health check
fi

有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

或者您可以使用案例陈述:

case $(runlevel) in
2)
    # do health check
    ;;
s)
    # do other things
    ;;
*)
    # skip doing anything
    ;;
esac

建议在bash中使用[[ ]]而不是[ ],因为它不会将变量的值与IFS分开并使它们受路径名扩展的影响。

if [[ $(runlevel) == 2 ]]

==在某种程度上也比单=更具可读性,但要小心添加glob模式。