インターフェイスの状態でスクリプトを実行

このQ&Aのポイント
  • インターフェイスの状態でスクリプトを実行する方法を探しています。
  • システムの状態が変化した際にルーティングテーブルを自動で変更する方法を探しています。
  • network managerを使用しつつ、インターフェイスの状態に応じてコマンドやスクリプトを実行する方法を教えてください。
回答を見る
  • ベストアンサー

インターフェイスの状態でスクリプトを実行

インターフェイスの状態がup・downした際に、コマンドやスクリプトを実行するようにしたいです。 構成は、Raspberry Pi 3 model BにRaspbian Stretch with Desktop 4.9を入れています。 具体的に言うと、システムが立ち上がってupしたり、ケーブルが抜けてdownした場合にルーティングテーブルを意図的に変更したいと考えています。 一番簡単な方法は/etc/network/interfacesにpost-up、post-downコマンドで追加する方法ですが、interfacesを使用しないでできる方法を探しています。 理由は、network managerを使用したく、interfacesを使用するとnetwork managerでインターフェイスの構成ができなくなってしまうためです。 何か良い方法はありませんか?

質問者が選んだベストアンサー

  • ベストアンサー
noname#259146
noname#259146
回答No.2

管理ソフトWebminを使うとできます。 Webminには「システムとサービスのステータスの状態」を調べメールを送ったりコマンドやスクリプトを動かす機能があり、ネットワークインターフェイスの状態も対象です。 Webminは古くから有る実績ある管理ソフトです。通常のサーバ管理はこれすべ管理できます。 インストールと設定方法は https://blog.smallserver.jp/raspberry-pi-3-%E3%81%AB-webmin-%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB/ を見られるとよいです。

hirapiro
質問者

お礼

うわ!これ、すごく便利なツールですね!! こんなのがあるだなんて、知りませんでした。 しかもGUIで知識があまりなくても使用できそうですから、自分にピッタリです(^^) 試しに使用してみます!!

その他の回答 (1)

  • agehage
  • ベストアンサー率22% (2555/11363)
回答No.1

インターフェースの状態を監視するスクリプトを回してダウンを検知するというのはどうでしょう 具体的には インターフェースの状態を調べるコマンドを打つ その結果のupかdownかだけawkで抽出 ifで条件分岐 タイムウエイト1秒 繰り返す

hirapiro
質問者

お礼

早速のご回答ありがとうございます。 確かにおっしゃる方法で可能だと思いますが、知識がなくて具体的なスクリプトの作成方法がわからないです(TT) インターフェイスの状態により、スクリプトを実行する場所があればと思ったのですが・・・

関連するQ&A

  • Raspberry Pi エラーの内容が?

    使用デバイス:Raspberry Pi 3 B+ Description: Raspbian GNU/Linux 9.6 (stretch) エラー内容 ImportError: No module named 'line_notify' これを解消するにはどうすればよいのでしょうか?

  • ラズベリーパイとスマホをアドホック接続

    Raspberry Pi Zero Wを先日購入し、Wi-Fiが無い屋外からスマートフォンで直接遠隔操作をすることを目標としています。私はプログラミングやネットワークの初心者です。 色々なHPを見てDHCPやIPアドレス固定、ラズパイのAP化などが必要であることは理解したのですが、HPで記載されている方法の通りに設定してもうまく出来ませんでした。 初心者でも分かるよう、プログラミングやネットワーク設定についてご指導及びアドバイス頂けませんでしょうか。 尚、参照したHPではJessieを使用していたようですが、私はRaspbian Stretchを本体に導入しています。

  • RaspberryPiからWin共有フォルダ

    家庭内LANで、 Raspberry Pi 3 Model B (Raspbian)から Windows10の共有フォルダにアクセスできなくて困っています。 ファイルマネージャを起動 メニュー → 移動 → ネットワーク → Windowsネットワーク とたどると 「サーバーから共有リストを取得できませんでした: そのようなファイルやディレクトリはありません」 のメッセージがでます。 ちなみに、逆(Raspberry Piの共有フォルダにWindows10からアクセス)はできます。 どなたかご教授いただければ幸いです。

  • InterfaceのSpeed確認方法

    OSはSolaris9、ハードはFireV240を使用しており、QuadInterfaceが標準で構成されております。 ここで全InterfaceのLinkSpeedを一つのコマンドで同時に確認をしたいと思うのですが、どなたかご存知の方いらっしゃいませんでしょうか? ご教授願います。

  • インターフェイスIDを変えずにVBのDLLをリコンパイルするには?

    VBのDLLをリコンパイルするとインターフェイスIDが更新されてしまうので使用しているVBのAPは参照設定を張り直さなければならないし、使用している端末はレジストリ登録をしなおさなければならない(DOS窓からregsvr32コマンドを使用しています)という始末で大変困ってます。 リコンパイル時インターフェイスIDを更新せずにすませる方法はないでしょうか。 もしくは、「インターフェイスIDは更新されるもの」なのでしょうか。

  • CenterComについて

    初歩的な質問ですいません。 CenterCOMでConfigを確認するためのコマンド、また、インタフェースのup/down、arpを確認するためのコマンドを教えていただけませんでしょうか。 CiscoのようにShow running-config、sh ip int brief、sh ip arpのようなイメージです。

  • インターフェイスについて、、

    インターフェイスについて、、 当方、音楽を作っています。 現在、新たなインターフェイスの購入を検討中です。 音楽は、主にプラグインソフトで一人で制作しています。 ですので一つづつ録音して、重ねていくという方法で製作しています。 プラグインソフト・サンプラー・シンセを主に使用して、数十トラックを重ねて曲を構成しています。 使う楽器(ハード)としては、現在シンセサイザー二台・後は外でフィールドレコーディングしたもの・それ等を扱うサンプラー・そして自らの声です。 ナマのギター・ベースは、使う可能性としてはありますが、現時点では低く、多様する事は今後としてはないと思います。 私的には、お金がないのでapogeeのduetを購入しようかと考えています。 しかし、duetはどういう方に向いているのか、また自分の元音源はそんな端子がいくつも付いたインターフェイス(apogeeのensemble等。これも検討しています)が必要なのかを考えると、イマイチ理解していない事で購入に踏み切れないでいます。 apogeeのensembleは、duetと比べて端子の数が多いというそれだけが特色、という事ではないのでしょうが。 製作的には、Macpro(デスクトップ)8コア、cubase5を使用し、比較的繊細な質の高いものを作っています。 曲的には、展開が速い、パンク・ノイズを含んだエレクトロニカ、といった感じでしょうか。 上記の内容を踏まえて、私にはどのようなインターフェイスが良いと皆さんはお考えでしょうか? 何か良いインターフェイスがあれば教えていただきたいのですが。 情報が少ないとは思いますが、基本的な事でも構いませんので、知識のある方いらっしゃいましたら、アドバイスをいただけないでしょうか。 宜しくお願いします。

  • VBSでネットワークインターフェース名を取得したい。

    VBSでネットワークインターフェース名を取得したい。 こんにちわ!いつもお世話になっております。 さっそく質問なのですが、VBSを利用してネットワークインターフェース名を 取得する方法を教えてください。環境は、Windows7です。 Netshのコマンドを利用して、動的にDHCPまたはDGWの設定を変更したいと考えて おります。そのため、Netshのコマンドに必要なネットワークインターフェース名を 取得できないかと考えております。 下記のようなスクリプトを作成したのですが、下記のスクリプトでは文字数の変化に 対応ができないのと、余計な文字(:)を取得してしまいます。 検証用のWindows7で下記を実行すると、「ローカル エリア接続:」となりました。 ---------------------------------------------------------------------- If Err.Number = 0 Then Do Until objExec.StdOut.AtEndOfStream strLine = objExec.StdOut.ReadLine If InStr(strLine, "イーサネット アダプター") <> 0 Then iColon = Instr(strLine, ":") objEthernet = Mid(strLine, iColon - 11) End If Loop End If ---------------------------------------------------------------------- どんなネットワークインターフェース名でも、取得できるようにするにはどうしたら 良いでしょうか。 ご教授いただけると、大変助かります。よろしくお願い致します。

  • ssg でifOperStatusの状態

    ssg でネットワーク監視をしようとしています。 幾つかの機器で、 インターフェースは問題なく通信できているのですが、 snmp の snmpget で状態確認をすると、   testing(3) と返してきます。   up(1) にしたいのですが、testing( になる原因と、 その対応方法を教えていただけませんでしょうか。 よろしくお願いします。

  • linux(ubuntu)へローカルIPを割り当て

    VirtualBoxにlinux(ubuntu)を入れています。 ホストOSからゲストであるubuntuにhttpアクセスしたいので、 ubuntuに固定ローカルIP(192.168.56.101)を割り当てたいのですが、うまくいきません。 ネットで調べて、とりあえず以下のようにコマンド実行してみましたが、 正直コマンドの意図は解らずに実行しています。 有識者の方、どうかご教授お願い致します。 ------------------ $vim /etc/network/interfaces # The Loopback network interface auto lo iface lo inet loopback # The primary network interface iface eth1 inet static address 192.168.0.1 netmask 255.255.255.0 gateway 192.168.0.1 :wq $ sudo /etc/init.d/networking restart * Reconfiguring network interfaces... [ OK ] $sudo vim /etc/hosts 192.168.56.101 guest :wq /sbin/ifconfig lo Link encap:ローカルループバック inetアドレス:127.0.0.1 マスク:255.0.0.0 ------------------ ↓ ローカルIPに192.168.56.101が割り当てられていない。