Linux¶
スクリプト中で実行しているコマンドを表示する
普通にシェルスクリプトを書くと実行結果のみが表示され、『実行しているコマンドそのもの』は表示されません。「試験結果のエビデンスとして、結果と共にコマンドも残したい」「スクリプトをデバッグしたい」といった場合は実行結果だけでなく、実行したコマンドも表示されると便利です。今回は「スクリプト中で実行しているコマンドも表示する方法」をメモします。
RADIUS をテストするには
RADIUS サーバの構築後にテストを実施する際、「実際に RADIUS クライアントとして設定したネットワーク機器やサーバへ SSH ログインし、RADIUS サーバで上手く認証されるか?を確認する」ことは、もちろん可能です。しかし、他にも(実際のログイン処理では無く)『テストコマンドで RADIUS 認証の挙動を確認する』方法があります。まずはテストコマンドで動作を確認し、上手くいったら実際のログインテストを試す… というのが最もスマートだと思います。メジャーなところでは以下のような方法があります。
- FreeRADIUS 付属の radtest を使う
- Cisco IOS の test aaa を使う
今回はこれらの RADIUS のテスト方法について記載してみます。RADIUS サーバには MikroTik の RouterOS を使いました。
pkill を使ってプロセス名だけでプロセスを停止する
プロセスを停止したい場合、プロセス ID を指定して kill を実行します。しかし、pkill を使えばプロセス名だけでプロセスを停止することが出来ます。今回は Ubuntu 14.04.3 環境で pkill を試します。
sudo でリダイレクトするには
sudo の実行結果をリダイレクトしようとするとエラーになります。
1 2 | |
このような場合は sudo sh -c の引数として一連のコマンドを実行します。
1 | |
参考までに、「-c」オプションは man によると以下のように書かれています。
-c Read commands from the command_string operand instead of from the standard input. Special parameter 0 will be set from the command_name operand and the positional parameters ($1, $2, etc.) set from the remaining argument operands.
CoreLinux で OvS をビルド・インストールする
CoreLinux 環境で Open vSwitch(以下、OvS)を使えるようにビルドしてみました。手間を考慮し、スクリプト化してあります。
CoreLinux 6.3 を VIRL に登録する
Tiny Core Linux はフットプリントが非常に小さい Linux ディストリビューションで、Cisco VIRL のような仮想化された検証環境内で複数インスタンスを立ち上げても軽快に動作する、という特徴があります。用途に応じて幾つかの種類があります。参考として記載したサイズは 6.3 用 ISO イメージのサイズです。
- Core
- 9MB 程度。CLI だけの、最小環境での利用を想定。
- TinyCore
- 15MB 程度。GUI(X)を含む。
- CorePlus
- 84MB 程度。TinyCore に様々なパッケージを追加している。
追加パッケージも数多く提供されているので Core をベースにパッケージを追加し、カスタマイズしていくのも簡単です。今回は Core を VIRL に登録してみます。
Raspberry Pi2 に GPIO 経由でシリアルコンソールアクセスする
Raspberry Pi2 はもちろん簡単にキーボードやモニタに接続出来ます。しかし、非常にコンパクトなので逆にキーボードやモニタに繋がずに使いたくなってしまいます… そこで、MacBook Air から Raspberry Pi2 を GPIO 経由でシリアルコンソールアクセス出来るように設定しました。
JSON や XML を整形して表示する
JSON や XML を整形して表示出来るツールをまとめます。
- JSON の整形
- Python の標準ライブラリを使う
- 軽量 JSON パーサー「jq」を使う
- XML の整形
- xmllint を使う
- tidy を使う
- xmlstarlet を使う