3.1 フック処理の活用 #
エッジゲートウェイには、特定のケースにおいてユーザー独自の処理をフックする仕組みがあります。以下のディレクトリ配下に存在するスクリプトファイルが実行されます。
フック処理一覧
| 機能 | ディレクトリ | 実行条件 |
|---|---|---|
| イーサネットインターフェイス | /etc/amnimo/if-up.d | インターフェイスのリンクアップ |
| /etc/amnimo/if-down.d | インターフェイスのリンクダウン | |
| PoE | /etc/poe/hook/temp-alert-occur.d | PoEコントローラの温度異常発生 |
| /etc/poe/hook/temp-alert-clear.d | PoEコントローラの温度異常復旧 | |
| PPP | /etc/ppp/ip-up.d | IPアドレス割当 |
| /etc/ppp/ip-down.d | IPアドレス解放 | |
| 通信モジュール(Ver.1.x.x.) | /etc/ecm/if-up.d | 回線接続 |
| /etc/ecm/if-down.d | 回線切断 | |
| 通信モジュール(Ver.2.x.x.) | /etc/amnimo/if-up.d | 回線接続 |
| /etc/amnimo/if-down.d | 回線切断 | |
| 低電圧監視機能 | /etc/amnimo/uvol-detection.d | 低電圧検出 |
| /etc/amnimo/uvol-recovery.d | 低電圧復旧 | |
| 温度監視 | /etc/amnimo/thermal-detection.d | 温度異常発生 |
| /etc/amnimo/thermal-restoration.d | 温度異常復旧 |
補足: ファイル名は、ASCIIの大文字と小文字、ASCIIの数字、およびASCIIのアンダースコア(_)とASCIIのハイフンマイナス(-)で構成されている必要があります。
AR10 / AR20、AX30(仕様B)の場合: PoE機能がないため、PoEのフックはありません。
AR10(通信モジュール非搭載モデル)の場合: 通信モジュール機能がないため、通信モジュールのフックはありません。
注意: フックのディレクトリは rootfs 領域にあるため、置いたスクリプトはファームウェアの全体更新で削除されます。スクリプトのパスを /etc/amnimo/archive.list に登録し、
config file saveで保存してください(『2.3 アプリケーションをファームウェア更新後も残す』)。
フックスクリプトに渡される情報
各ディレクトリのスクリプトは、run-parts によってファイル名の順に実行されます。スクリプトには、次の引数と環境変数が渡されます(AG10 FW 3.8.1 の /etc/amnimo/if-up などの呼び出し元で確認)。
| ディレクトリ | 引数 | 環境変数 |
|---|---|---|
| /etc/amnimo/if-up.d /etc/amnimo/if-down.d | 第1引数: インターフェイス名 | IFACE(インターフェイス名) |
| /etc/amnimo/uvol-detection.d /etc/amnimo/uvol-recovery.d | 第1引数: 検出時刻 | RFC3339(検出時刻) |
| /etc/amnimo/thermal-detection.d /etc/amnimo/thermal-restoration.d | 第1引数: 下記の 6 項目を空白で区切った 1 つの文字列 | TYPE、MODE、NAME、DETECTION、HYSTERESIS、TEMPERATURE |
| /etc/poe/hook/temp-alert-occur.d /etc/poe/hook/temp-alert-clear.d | なし | なし |
- 温度監視のフックでは、6 項目が 1 つの引数にまとめて渡されます。個別の値は環境変数から取得してください。
- 呼び出し元は
PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/binを設定しています。 - /etc/amnimo/if-up.d と /etc/amnimo/if-down.d には、アムニモのスクリプト(
10-interface、95-eccなど)があります。ユーザーのスクリプトは、実行順を考えて名前の先頭に番号を付けてください。アムニモのスクリプトは変更しないでください。 - /etc/ppp/ip-up.d と /etc/ppp/ip-down.d は、pppd の標準の仕組みです。渡される引数は pppd の仕様に従います。
補足: 引数と環境変数の使用例は『3.12.2 リンク状態同期IPv6制御スクリプト』の IPv6 の設定スクリプト(
${IFACE}を使用)を参照してください。

補足: ファイル名は、ASCIIの大文字と小文字、ASCIIの数字、およびASCIIのアンダースコア(_)とASCIIのハイフンマイナス(-)で構成されている必要があります。
注意: フックのディレクトリは rootfs 領域にあるため、置いたスクリプトはファームウェアの全体更新で削除されます。スクリプトのパスを /etc/amnimo/archive.list に登録し、