よつまお

過去ログ倉庫を兼ねたライフログ的な雑記ブログ。記事ジャンルにこだわることなく、不定期更新でゆるゆる運営しています。

ブログ移転 ( https://www.yotsumao.org/ )

 

サーバ空き容量監視バッチ-bat~vbs

emp.batのDOSバッチ内容を記載。

-----
DIR \\hogehoge\bar /-c > C:\tmp
FOR /F "tokens=3,4" %%A IN (C:\tmp) DO IF "%%B" == "バイトの空き領域" ECHO %%A > C:\free.txt
DEL C:\tmp
for /f %%i in (C:\free.txt) do set empty=%%i
if /i "%empty:~0,3%" leq "117" cscript "C:\Documents and Settings\Administrator\デスクトップ\bar監視\send_error.vbs"
exit
-----

send_error.vbsのVBスクリプト内容を記載。

-----
Set fso = CreateObject("Scripting.FileSystemObject")
Set src = fso.GetDrive("\\hogehoge\bar")
fsd = src.FreeSpace

Set oMsg = CreateObject("CDO.Message")
oMsg.From = "BarServerMaster@hoge.co.jp"
oMsg.To = "bar-all2@hoge.co.jp"
oMsg.Cc = "admin@hoge.co.jp"
oMsg.Subject = "【!!BARファイルサーバアラート!!】"
oMsg.TextBody = "各位" & vbCrLf & vbCrLf & "barサーバ空き容量が3%を切りました!!" & vbCrLf & vbCrLf & "至急、データの整理を行い、未使用&不要データを" & vbCrLf & "bar2へ移動してください!!" & vbCrLf & vbCrLf & now & " dir【\\hogehoge\bar】" & vbCrLf & "<全390GB中/残:" & FormatNumber(fsd,0,0,0,-1) & " bytes>" & vbCrLf & vbCrLf & "※上記は管理領域を含めた容量です。"

oMsg.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
oMsg.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.hoge.co.jp"
oMsg.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
oMsg.Configuration.Fields.Update

oMsg.Send
-----

inp.batのDOSバッチ内容を記載。

-----
@echo off
@echo ※ALTキーを押しながら半角/全角キーで日本語入力※
set /p VL1=移動したいフォルダ名を入力してください:
set /p VL2=確認のため、再入力してください:
if %VL1% == %VL2% (echo %VL2%) > \\hoge01\temp\folder.txt
if %VL1% == %VL2% (echo %VL2%をセットしました。)
if not %VL1% == %VL2% (echo もう一度正しく入力してください。)
PAUSE
if %VL1% == %VL2% (at \\hoge01 22:00 cmd /c "C:\Documents and Settings\Administrator\デスクトップ\bar監視\bar_2.bat") else (start \\hoge01\temp\inp.bat)
exit
-----

bar_2.batのDOSバッチ内容を記載。

-----
for /f %%i in (C:\Temp\folder.txt) do set folder=%%i
move /y "\\hogehoge\bar\%folder%" "\\hogehoge\bar2\%folder%" > C:\move_log.txt
if /i exist "\\hogehoge\bar\%folder%" (xcopy "\\hogehoge\bar\%folder%" "\\hogehoge\bar2\%folder%" /s /e /c /h /r /y /i /v) > C:\copy_log.txt 2>&1
if /i exist "\\hogehoge\bar\%folder%" (xcopy "\\hogehoge\bar\%folder%" "\\hogehoge\bar2\%folder%" /s /e /c /h /r /y /v /d) >> C:\copy_log.txt 2>&1
if /i exist "\\hogehoge\bar2\%folder%" (rd "\\hogehoge\bar\%folder%" /s /q) > C:\del_log.txt 2>&1
DIR \\hogehoge\bar /-c > C:\tmp
FOR /F "tokens=3,4" %%A IN (C:\tmp) DO IF "%%B" == "バイトの空き領域" ECHO %%A > C:\free.txt
DEL C:\tmp
cscript "C:\Documents and Settings\Administrator\デスクトップ\bar監視\send_log.vbs"
exit
-----

send_log.vbsのVBスクリプト内容を記載。

-----
Set objEmail = CreateObject("CDO.Message")

objEmail.From = "FilesBackUpper@hoge.co.jp"
objEmail.To = "admin@hoge.co.jp"
objEmail.Subject = "【News】barバックアップLog"
objEmail.Textbody = "barバックアップLog" & vbCrLf & Now
' objEmail.Htmlbody = "<H1>barバックアップLog</H1>"
objEmail.AddAttachment("C:\free.txt")
objEmail.AddAttachment("C:\copy_log.txt")
objEmail.AddAttachment("C:\move_log.txt")
objEmail.AddAttachment("C:\del_log.txt")

objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.hoge.co.jp"
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objEmail.Configuration.Fields.Update

objEmail.Send