2014年7月16日水曜日

[Script][VBS]Cドライブの容量チェックをして空き領域が5GBになったらアラートメールを送る(smail.exe コマンド)

メール送信はフリーのツール smail.exe を使います。(公式サイト
VBS ファイルと同じフォルダに置いておく必要があります。

動作概要

Cドライブの容量チェックを行って、空き容量をログファイルに書き込む。
[2014/7/16 0:27] Cドライブの空き容量は 90.5 GB です。

Cドライブの空き容量が 5GB 以下の場合にはアラートメールを送る。
メールタイトル: [Disk Alert] ADserver03
メール本文: ADserver03 の C ドライブのディスクの空き領域が 5 GB 以下になりました。

VB スクリプトサンプル

DiskCheck.vbs
Dim objFSO, strDriveLetter, objDrive

'Limit 5GB
const FREE_LIMIT = 5

Set objFSO = CreateObject("Scripting.FileSystemObject")

If objFSO.DriveExists("C") = True Then

  Set objDrive = objFSO.GetDrive("C")
  If objDrive.IsReady Then
    'スクリプトのパス取得
    strScriptPath = Replace (WScript.ScriptFullName, WScript.ScriptName, "")

    '空き容量をログに出力しておきます
    Set objLogFile = objFSO.OpenTextFile(strScriptPath & "DiskCheckLog.txt",8 ,True)
    objLogFile.WriteLine "[" & Now & "] C ドライブの空き容量は " & FormatNumber(objDrive.FreeSpace/1024/1024/1024, 1, -1) & " GB です。"

    If Fix(objDrive.FreeSpace/1024/1024/1024) < FREE_LIMIT Then
      'アラートメールを送信
      Set objWshShell = CreateObject("WScript.Shell")
      mailhost = "172.16.0.12"
      mailsender = "alert@mail.local"
      mailtitle = "[Disk Alert] ADserver03"
      mailbody = "ADserver03 の C ドライブのディスクの空き領域が " & FREE_LIMIT & "GB 以下になりました。"
      mailto = "support@mail.local,manager@mail.local"

      objWshSHell.Exec(strScriptPath & "smail.exe -h" & mailhost &" -f" & mailsender & " -s""" & mailtitle & """ -T""" & mailbody & """ " & mailto)
    Else
      '何もしない

    End If
  End If

End If

Set objLogFile = Nothing
Set objDrive = Nothing
Set objFileSys = Nothing

使い方

タスクスケジューラに設定して、1日に1回走らせます。


Script のページに戻る

0 件のコメント:

コメントを投稿