Division By Zero

ゼロで割る

コマンドをラップする

あるアプリケーションが特定の外部コマンド(たとえば、/usr/sbin/ntpdate)を呼び出しているとわかっていて、さらにどんなパラメータがわたっているかを知りたい場合、コマンドをラップすることがある(UNIX等の場合)。

ntpdateをラップする例で説明すると、

  1. /usr/sbin/ntpdateをntpdate.orgにリネーム
  2. /usr/sbin/ntpdateを下記のように作成、実行権を与える
#!/bin/sh

/usr/bin/logger -i -t ntpdate "options: $*"
exec /usr/sbin/ntpdate.org $*

引数がsyslogに表示されるようになる。あまりシェルスクリプトを書かない人でも$*や$?等の特殊シェル変数を覚えておくと便利。

  • $* 引数全部
  • $? 実行結果(EXITの引数)

コマンド実行直後に

echo $?

とすれば、0とか1とか表示される。慣例的には1がエラー。

まあ、普通は/usr/sbin/ntpdateなんて書き換えられないはず。書き換えると、大量のアラートが出るとか。

あくまでもクローズドな環境でのデバッグ用ってことで終了!