用于监视ISDN连接的Bash脚本

时间:2010-06-05 01:47:41

标签: bash ubuntu scripting connection isdn

在Ubuntu 10.04服务器上我想用bash脚本执行以下操作:

创建一个监视ISDN连接的服务,如果停机时间超过60秒则强制重新连接。 我目前的解决方案看起来像这样:

#!/usr/bin/bash
LOGFILE=/home/msw/router/ping-stats.txt
TIME="`date +%C%y%m%d%H%M`"
/sbin/ping -c 1 google.com > /dev/null 2>&1
if [ "$?" == "0" ]
then
        STATUS=1
else
        STATUS=0
fi
echo "$TIME $STATUS" >> $LOGFILE

由于ISDN连接上的带宽很宝贵,我想避免ping并将其替换为仅检查网络设备状态的命令。如果连接是“up”,是否有可能从中推断出来?

我还希望将该解决方案实现为一种不断检查连接的服务,而不是定期使用cronjob进行检查。

如果有人能把我推向正确的方向,我真的很感激。

谢谢

2 个答案:

答案 0 :(得分:1)

快速而肮脏的是nm-tooldbus-send可以更精确一些,但需要了解D-Bus如何与NetworkManager配合使用。如果你想要持久的东西,你需要学习如何与D-Bus交互,但这可能需要使用一些较低级别的东西,比如Python。

答案 1 :(得分:1)

您的ISDN是由内部适配器还是通过以太网连接提供的?如果您有外部“调制解调器”,则需要使用SNMP或其专有设施进行查询。

顺便说一下,你可以通过这种方式进行测试:

if /sbin/ping -c 1 google.com > /dev/null 2>&1
then
    ...

此外,单个ping是非常少量的字节。如果你每分钟只做几次,你可能永远都不会注意到它。

相关问题