shadowcopy.exe
バックアップを作成し、rsync を使用して特定の宛先にコピーするVBS スクリプトを開発しようとしています。同じスクリプトによって rsync コピー手順用に作成され、特定の単語 (「エラー」や「失敗」など) がチェックされるログ ファイルがあります。
私が今抱えている問題は、ログ ファイルを確認する方法や特定のキーワードを読み取る方法がわからないことです。
それが私の問題を解決する可能性があることを読みましたInStr
が、それを使用してキーワードを定義し、それらを読み、それをメールアラートと組み合わせる方法がわかりません。多分誰かが私にアドバイスを持っていますか?
これまでの私のコード:
Dim oEmail, oConf
Dim authuser, authpass, smtpserver
Dim recipient,sender,subject,message
Dim ObjFso
Dim FIL_LOG
Dim response
'Angaben zur Quelle und Ziel
quelle = "c:\vshadow" 'beispiel c:\vshadow
ziel = "/cygdrive/c/users/example/desktop/test/" 'beispiel /cygdrive/c/users/example/desktop/test/
'angaben zu den emails die verschickt werden wollen
authuser = "example@example.de"
authpass = "123"
smtpserver = "server"
recipient = "example@example.de"
sender = "rsync@test.de"
subject = "Test E-Mail"
message1 = "Schattenkopie konnte nicht erstellt werden"
message2 = "rsync befehl ist durchgelaufen"
message3 = "rsync ist abgebrochen"
'für den email versand benötigte daten
Set oEmail = CreateObject("CDO.Message")
Set oConf = CreateObject("CDO.Configuration")
oConf.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
oConf.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
oConf.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = smtpserver
oConf.Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
oConf.Fields("http://schemas.microsoft.com/cdo/configuration/sendusername") = authuser
oConf.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = authpass
oConf.Fields.Update
'Schattenkopie erstellen
Const CONTEXT = "ClientAccessible"
Set Args = WScript.Arguments
If Args.Count() > 0 Then
VOLUME = Args.item(0)
Else
VOLUME = "C:\"
End If
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set objShadowStorage = objWMIService.Get("Win32_ShadowCopy")
errResult = objShadowStorage.Create(VOLUME, CONTEXT, strShadowID)
'falls schattenkopie nicht erstellt werden kann email mit Fehlermeldung, sonst gehts
'weiter
If errResult <> 0 Then
oEmail.Configuration = oConf
oEmail.To = recipient
oEmail.From = sender
oEmail.ReplyTo = sender
oEmail.Subject = subject
oEmail.HTMLBody = message1
End If
'Mounted die Schattenkopie und Kopiert per Rsync
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "%COMSPEC% /C ShadowSpawn.exe " & quelle & _
" t: rsync -rltDv --log-file=rsync.log--link-dest=/" & ziel & _
"/%last_run% /cygdrive/t/* " & ziel & _
" > c:\users\example\desktop\vbs\rsync\bin\vss1.log ", 0, True
'''''''''''''''''''''
'Hier möchte ich die gerade erstelle log Datei auf Stichwörter wie z.B error
'untersuchen. Falls error in der log datei vorhanden ist soll es mir eine Abbruch
'mail schicken. Ansonsten eine email das alles gut durchgelaufen ist
ergenbis = InStr(1, vss1, error, 1)
'If Ergebnis <> 0 Then 'Email verschicken das alles durchgelaufen ist
oEmail.Configuration = oConf
oEmail.To = recipient
oEmail.From = sender
oEmail.ReplyTo = sender
oEmail.Subject = subject
oEmail.HTMLBody = message2
Else 'abbruchmail verschicken
oEmail.Configuration = oConf
oEmail.To = recipient
oEmail.From = sender
oEmail.ReplyTo = sender
oEmail.Subject = subject
oEmail.HTMLBody = message3
End If
oEmail.Send
Set oConf = Nothing
Set oEmail = Nothing