ユーザコマンドのコーディング例として,サーバのIPアドレスを切り替える処理の例について説明します。(1)では,コーディング例の一部分を取り上げて,ユーザコマンドのコーディング方法を説明します。(2)では,コーディング例全体を示します。
なお,サーバのIPアドレスを切り替える処理は,LANの状態設定ファイルを設定する方法でも実現できます。LANの状態設定ファイルを設定する場合,ユーザコマンドの作成は不要です。
サーバが使用するIPアドレスを,次のタイミングで追加・削除する場合について説明します。
これらのタイミングを次に示します。図中で示す番号は,コーディング例の一部分と対応しています。
図6-42 ユーザコマンドのコーディング例で示す発行タイミング
ユーザコマンドのコーディング例と発行タイミングの対応を次に示します。
図6-43 ユーザコマンドのコーディング例と発行タイミングの対応
(1)では,サーバ起動時(サーバ起動処理の開始時点)に実行サーバで実行したい処理を記述します。この例では,IPアドレスを追加するコマンドとしてipaddr_addを記述しています。
(2)では,サーバ起動時(サーバ起動処理の開始時点)に待機サーバで実行したい処理を記述します。この例では何も実行しないため,何も記述していません。
(3)では,実行サーバ障害時(障害処理の開始時点)に実行サーバで実行したい処理を記述します。この例では,IPアドレスを削除するコマンドとしてipaddr_deleteを記述しています。
(4)では,実行サーバ障害時(障害処理の開始時点)に待機サーバで実行したい処理を記述します。この例では,IPアドレスを追加するコマンドとしてipaddr_addを記述しています。
(1)から(4)の発行タイミングごとに,HAモニタから渡される変数とHAモニタが発行するユーザコマンドの対応を次に示します。
表6-15 HAモニタから渡される変数とHAモニタが発行するユーザコマンドの対応
発行タイミングの番号 | $4 | $5 | $6 | HAモニタが発行するユーザコマンド※ |
---|---|---|---|---|
(1) | online | -s | start | /usr/bin/usrcmd -n server -k online -s start |
(2) | standby | -s | start | /usr/bin/usrcmd -n server -k standby -s start |
(3) | online | -a | start | /usr/bin/usrcmd -n server -k online -a start |
(4) | standby | -a | start | /usr/bin/usrcmd -n server -k standby -a start |
注※ ユーザコマンド名およびサーバ識別名はそれぞれ次を仮定しています。
このコーディング例は,サンプルファイルとしてHAモニタのサンプルファイル用ディレクトリの下に格納されています。
#!/bin/sh |