Cygwinは、Windowsで使えるGnu環境ですが、セットアップに時間がかかる割に特殊なパス指定で今ひとつ使わなくなってしまいます。
Windows上でgrep/awk/sed/tailといったツールを簡単に使いたいという場合にぴったりなのがNative Win32 ports of some GNU utilitiesです。
インストール
Native Win32 ports of some GNU utilitiesからUnxUpdates.zipをダウンロードして適当なディレクトリに展開します。
あとは、PATHを設定するだけです。
使えるコマンドと残念ながらないコマンド
ログの監視に便利なtail -fが問題なく使えます。
awk/sed/cut/join/sortといったおなじみのコマンド、makeも使えます。
非常に残念ながらwatch/tar/bashは、含まれていません。
Zabbixからリモートコマンドとして利用する
zabbix_agentdからリモートコマンドとして使うには、システムの環境変数にPATHを設定してWindowsを再起動する必要があります。
これは、Windowsサービスは、起動時に1回だけPATHを読み込むためです。
netstatの結果からESTABLISHのコネクション数を返すアイテムを追加する場合には、zabbix_agentd.confに次のように書くことができます。
C:\bin\zabbix>tail -1 zabbix_agentd.conf UserParameter=netstat.establish,netstat | grep ESTABLISH | wc -l | tr -d " " C:\bin\zabbix>
マシンを再起動しないと下記のようにコマンドが見つかりません。
$ zabbix_get -s winxp.sa.local -k netstat.establish | nkf -S -w8 'grep' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 $
パスが正しく設定されていれば、再起動すると動作するようになります。
$ zabbix_get -s winxp.sa.local -k netstat.establish 4 $
コメント
> 特殊なパス指定で今ひとつ使わなくなってしまいます。
環境変数 CYGWIN に nodosfilewarning を設定すれば、Windows/DOS形式のパス指定が使えると思います。
参考:
Cygwin/日本語化 – Co-Coa Wiki
http://co-coa.sakura.ne.jp/index.php?Cygwin%2F%E6%97%A5%E6%9C%AC%E8%AA%9E%E5%8C%96
cocoaさん
コメントありがとうございました。
なるほど、cygwinの特殊なドライブ指定ではなくてWindowsと同じパス指定にできるのですね。