0

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 で定期的にチェックするのではなく、継続的に接続をチェックするサービスとしてソリューションを実装したいと考えています。

誰かが私を正しい方向に押し進めてくれれば、本当にありがたいです。

ありがとうございました

4

2 に答える 2

1

ISDN は内部アダプタまたはイーサネット接続によって提供されますか? 外部の「モデム」がある場合は、SNMP またはその専用機能を使用してクエリを実行する必要があります。

ちなみに、この方法でテストを行うことができます:

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

また、1 回の ping は非常に少ないバイト数です。1 分間に数回しか実行していない場合は、まったく気付かない可能性があります。

于 2010-06-05T02:11:50.523 に答える
1

クイック アンド ダーティにはnm-tool. dbus-sendもう少し正確にすることができますが、D-Bus が NetworkManager とどのように連携するかについての知識が必要です。永続的なものが必要な場合は、D-Bus と対話する方法を学ぶ必要がありますが、Python などの少し低レベルのものを使用する必要がある場合があります。

于 2010-06-05T01:50:42.103 に答える