特定のフォルダーにファイルが作成されたことを監視したい

お世話になっております。

事前に過去レスは確認しておりますが、具体的な設定方法が
わからなかったため、質問させて頂きました。

通常は何もファイルが存在しない特定のフォルダ(C:\test)に、
ファイル(ファイル名は任意)が作成された場合は検知するように
監視をしたいと考えています。

ZABBIXの標準で用意されているキーでは監視できないため、
UserParameterを設定して、監視用のバッチファイル(test.bat)を実行
することで、監視しようとしていますが、ファイルの有無に
関わらず、[設定]→[ホスト]→[アイテム]のステータスが
取得不可になってしまいます。

WEBインターフェースの「アイテム」と「トリガー」、
zabbix_agentd.confの「UserParameter」、
UserParameterから実行している「バッチファイル(test.bat)」は以下の通り設定しています。

[アイテム]
---------------------------
ホスト :TEST_Windows ← テンプレート名を記載
説明  :フォルダ監視
タイプ :zabbixエージェント
キー  :error_folder
データ型:数値(整数)
データの形式:10進数
単位   :未設定
乗数を使用:未チェック
更新間隔(秒):30
例外の更新間隔(秒):未設定
ヒストリの保存期間(日):90
トレンドの保存期間(日):365
ステータス:有効
保存時の計算:なし
値のマッピングの使用:なし
アプリケーション:Application A
---------------------------

[トリガー]
---------------------------
名前:フォルダー監視
条件:{TEST_Windows:error_folder.last(0)}=0
次のトリガーに依存:設定なし
イベント生成:ノーマル
深刻度:重度の障害
---------------------------

[UserParameter]
---------------------------
UserParameter=error_folder,C:\Program Files\ZABBIX agent\test.bat
---------------------------

[バッチファイル(test.bat)]
---------------------------
@echo off

if not exist C:\test\* exit /b 0 ← ファイルがあれば戻り値0を返す
if exist C:\test\* exit /b 1 ← ファイルが無ければ戻り値1を返す
---------------------------

原因調査のため、マネージャから、zabbix_getコマンドを
使用してキーの値を確認したところ、以下の値が返ってくるため、
バッチファイルに原因があるのではと考えていますが、
対処方法がわかりません。

[zabbix_getの実行方法]
---------------------------
# zabbix_get -s エージェントのホスト名 -k error_folder
---------------------------

[zabbix_getの実行結果]
--------------------------- 
exist ?g「
・?「ワキB
---------------------------

対処方法をご教示頂けないでしょうか?

マネージャはRHEL6.2、エージェントはWindows XPを使用しています。

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー TNK の写真

2つ問題があります。
1つめは、「C:\test\*」だと「C:\test\」のディレクトリもカウン
トされてしまうようですので、この条件指定ではだめだと思いま
す。

2つめは、UserParameterで呼び出す場合は、文字として表示される
必要があります。
exitコードが返却値になるわけではありません。

ですので、監視対象のファイルが*.logというような条件に当ては
めることができるのならば、以下のようなバッチファイルにするこ
とが考えられます。
<code>
@echo off

if not exist C:\test\*.log goto :notexist
if exist C:\test\*.log goto :trueexist

:notexist
echo 0
exit /b

:trueexist
echo 1
exit /b
</code>
Windowsで試せる環境がすぐに用意できないので、実際の動作確認
までは行っておりません。
他にも何か工夫しないといけないかもしれません。

ユーザー OKB の写真

TNK様

いつも大変お世話になっております。

また、以下の回答ありがとうございます。

もう少し調べてみます。

監視対象のファイルが*.logというような条件に当ては
めることができるのならば、以下のようなバッチファイルにするこ
とが考えられます。

<code>
@echo off

if not exist C:\test\*.log goto :notexist
if exist C:\test\*.log goto :trueexist

:notexist
echo 0
exit /b

:trueexist
echo 1
exit /b
</code>