2012年12月30日日曜日

ログは結構繊細なんです

ログのローテーションが失敗して困っている人を見かけました。

それで話を聞いてみると、
書き込み中のログに対して監視を行なっているというではありませんか。

監視中にログをローテートさせれば失敗するのは自明と言えます。

分からないという方は、
以下のコードをお試しください。

Const ForReading = 1 

If WScript.Arguments.Count <> 1 Then
 msgbox "コマンドオプションでファイルを指定してください。", , "エラー"
 WScript.Quit
End If

Set objFSO = CreateObject("Scripting.FileSystemObject") 
Set objFile = objFSO.OpenTextFile(WScript.Arguments(0), ForReading) 

 msgbox WScript.Arguments(0) & "を読み込みロック中です。", , "確認"

objFile.Close

適当なファイルをログファイルに見立て、
このスクリプトの第一引数につっこんでください。

メッセージボックスが表示されている間に、
ログファイルに見立てたファイルの名前を変更してみてください。

その操作は失敗するはずです。

読み込みロック中は名前の変更ができないからこうなるのですが、
意外と知らない人が多いみたいなので口にしてみました。

ちなみに常時監視とまでいかなくても、
アンチウイルスのスキャンなどでも起こる可能性があります。

だからアホな監視の設定はしないようにお願いします。

0 件のコメント:

コメントを投稿