2008-07-31

バッチファイルを利用する(ネットワークの管理方法)

今月号の日経ネットワークの記事「管理・準用私のアイデア大賞」の記事が興味深かった。ネットワークの管理者が日常的に行っている管理・運用業務の負担を減らすさまざまなアイデアが書かれていた。

面白かったのは、入賞作のうち2つがバッチファイルを利用していた点。普通ツールというと、個人的にはシェルスクリプトを連想するが、windowsでの利用を考えると、一番お手軽なのがバッチファイルなのだろう。

■バッチファイルの例
・ipconfigの出力から拠点のサブネットマスクを判定
・reg queryコマンドを利用して、WindowsのレジストリからWebブラウザの設定(proxyなど)を読み出す処理
レジストリからプロキシサーバ設定を取得
・for /f "tokens=3" %%a in ('reg query "HKCU\SOFTWARE\Microsoft\Window\CurrentVersion\Internet settings" /v AutoConfigURL ^| find "REG_SZ"') do echo %%a > tmpfile

・フリーソフト「FastCopy」を使って、指定フォルダのファイルをネットワークドライブにコピー。実行結果をPowerShellを使って関係者にメールで通知
ファイルコピーのバッチファイルコマンド例)
C:\FastCopy /cmd=sync /include="*.doc" /force_close /log W:\hoge1 /to=C:\hoge2


・WindowsPowerShellメールから重要という文字が入った行を抜き出してメール送信)
$body = cat c:\log.txt | Select-String -pattern "重要"
$smtpClient = New-Object Net.Mail.SmtpClient("192.168.1.1")
$smtpClient.Send("to@example.com","source@example.com","ログの送信",$body)


・バッチファイル
for /F "options" %%v in ( ファイルセット ) do コマンド
※オプション /F:括弧内で指定されたファイルの内容を解析し変数に代入したうえで、コマンドを繰り返し実行する機能
※tokens=x,y どのパートを変数に代入してコマンド側に渡すかを指定する。

・リンク
wiki:バッチファイル
コマンドプロンプトを利用したバッチファイル
FastCopy
XP用 WindowsPowerShellダウンロード
バッチファイル:ファイル解析による繰り返し処理

No comments: