[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
ディスクの空き容量が少なくなった場合、管理者にメッセージを送付する方法
(全てDOSコマンドで行う場合)
【コマンド】
setlocal enabledelayedexpansion
net use Z: \\サーバのアドレス\C$ ・・・①
cd /d Z:
for /f "skip=4 tokens=1-4 delims= " %%b in ('dir "*"') do ( ・・・②
if "%%c"=="個のディレクトリ" set moto=%%d
)
for /f "tokens=1-4" %%a in ('echo %moto%') do set Aki=%%a%%b%%c%%d ・・・③
set keta=/%Aki%
rem 999MB以下の場合 ・・・④
if %keta:~-10,1%==/ (
goto :C_NG
)
rem 1GB以上の場合 ・・・⑤
if %keta:~-11,1%==/ (
set aaa=%Aki:~0,8%
goto :C_OK1
)
rem 10GB以上の場合 ・・・⑥
if %keta:~-12,1%==/ (
goto :C_END
)
:C_OK1
rem 4GB以下ならメッセージを送る
set /a ccc = 40000000
if %aaa% LEQ %ccc% ( ・・・⑦
goto :C_NG
) else (
goto :C_END
)
:C_NG
set errmsg=空き容量がありません UOPPIF01\C ⇒ 空き%moto%バイト
net send 192.168.160.112 %errmsg% ・・・⑧
:C_END
net use /YES /delete z: ・・・⑨
【解説】
①容量を調べる為に、調べたいサーバのディスクをネットワークディスクとして接続する
②dirコマンドを実行し、最後に表示されるディスク空き容量を調べる
③dirで表示される空き容量は、1000単位でカンマ区切りされている為、
カンマを取り除き、変数(Aki)にセットする
④DOSの制限で、1000000000以上の数値は扱えない。
そこで、比較を行う為、桁数を取得し、頭8文字の数値を取得する
999MB以下は、比較する前にNGなので、すぐC_NGに移動
⑤1GB以上は、頭8桁を取得し、C_OK1へ移動
⑥10GB以上は、問題なくOKなので、C_ENDへ移動
⑦エラー表示させたい最低の容量をセットし、取得した空き容量と比較
LEQ=以下
⑧net send で管理者にメッセージを送付
⑨①で接続したネットワークディスクを切断させる
ダウンロード(bat)