用于监视ISDN连接的Bash脚本

用于监视ISDN连接的Bash脚本,bash,ubuntu,scripting,connection,isdn,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

在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,并用一个简单检查网络设备状态的命令来代替它。是否可以由此推断连接是否处于“启动”状态

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

如果有人能把我推向正确的方向,我将不胜感激


谢谢你的快速和肮脏有
nm工具
dbus send
可以更精确一些,但需要了解D-Bus如何与NetworkManager一起工作。如果您想要持久性的东西,那么您需要学习如何与D-Bus交互,但这可能需要使用较低级别的东西,如Python。

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

您可以通过以下方式进行测试:

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

此外,单个ping是非常小的字节数。如果你一分钟只做几次,你可能永远不会注意到。

非常感谢。ISDN由内部Fritz提供!卡片