CodeZine(コードジン)

特集ページ一覧

スクリプトとタスクによるサーバ監視の自動化

WSH/WMI/CDOを組み合わせてサーバの状況をメールで通知する

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2006/09/07 00:00

Webサーバやファイルサーバなどを運用していると、知らぬ間にハードディスクの容量が足りなくなっていることがあります。そこで本稿では、スクリプトを利用して、サーバの状況をメール通知する方法を紹介します。専用のアプリケーションを用意することなく、サーバを監視できるため便利です

目次

はじめに

 Webサーバやファイルサーバなどの運用を行っていると、知らぬ間にハードディスクの容量が足りなくなってしまうことがありします。

 そこで本稿では、スクリプトを利用して、サーバの状況をメール通知する方法を紹介します。専用のアプリケーションを用意することなく、サーバを監視できるため便利です。

対象読者

 サーバ管理者。

必要な環境

  • Windowsのみ
  • Visual Studio 2005(C#のサンプルを利用する場合)

オーバーストーリー

 Windowsには、簡単なプログラミングを行うためのWSH(Windows Script Host)という機能があり、VBS(Visual Basic Script)やJS(JavaScript)で簡単にスクリプトを組み、実行できるようになっています。

 またWindowsには、WMI(Windows Management Instrumentation)というWindows自身を管理するためのフレームワークが搭載されています。このWMIは、COMインターフェイス経由でアクセスできます。

 何かを自動通知させるのに一番簡単な方法として、メール機能が挙げられるでしょう。CDO(Collaboration Data Objects)という機能もCOMインターフェイス経由でアクセスします。

 これらの機能を組み合わせることにより、いろいろなシステム監視を自動化することができるでしょう。

 まず、WSHとはどのようなものかを簡単に見ていきます。

WSHの簡単な例

 WSHは、先ほども述べたようにVBSやJSでプログラムを書くことができます。今回は一番身近なVBSを利用したいと思います。

 下記のソースを「hello.vbs」という名前で保存してください。今回は「c:\Codezine」というフォルダで作業を行いたいと思います。

Hello WSH
Wscript.Echo "Hello WSH"
vbsファイルの作成
vbsファイルの作成

 次にコマンドラインを起動して「c:\codezine」フォルダに移動します。

コマンドラインの起動
コマンドラインの起動

 さて、この状態で「hello」とタイプするだけで起動することができます。

Hello WSHの起動
Hello WSHの起動

 いかがでしょうか。このようにWScript.Echoコマンドで、コンソールにメッセージを表示することができました。

 このようにvbsのファイルは、ファイル名(拡張子を除く)を指定して実行できるのですが、実際には「c:\windows\system32\cscript.exe」により起動されています。

cscript.exe
cscript.exe

 このcscriptには兄弟がいて、wscriptという実行ファイルも存在します。wscriptで先ほどの「hello.vbs」を起動してみましょう。

wscriptでの起動
wscriptでの起動

 このようにコンソールベースがcscript、ウィンドウベースがwscriptと使い分けられています。

 またWindowsのx64環境下では、COMの呼び出しが32bitアプリケーションからの場合には32bitのみ、64bitからは64bitのみと制限されてしまうので、32bit版を適宜呼び出す必要があります。

 今回のWMIは64bitで問題ありませんが、メール送信が32bit専用ですので32bit版のcscriptを利用するようにしてください。

x64での32bit版cscript
x64での32bit版cscript

  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 中 博俊(ナカ ヒロトシ)

    大阪でフリーのソフトウェアエンジニア兼テクニカルライターとして日々新技術で楽しんでいる。 MSMVP for C# ブログ:http://blogs.wankuma.com/naka/

あなたにオススメ

All contents copyright © 2005-2022 Shoeisha Co., Ltd. All rights reserved. ver.1.5