0
shadowcopy.exe
으로 백업을 생성하고 rsync를 사용하여 특정 대상에 복사하는 VBS 스크립트를 개발하려고합니다. 동일한 스크립트에서 rsync 복사 절차에 대해 생성되고 이 특정 단어 (예 : "오류"또는 "실패")를 확인하도록 로그 파일이 만들어집니다.로깅 및 오류 검사를 사용하는 InStr - 섀도 복사본 스크립트 관련 문제
내가 지금 가지고있는 문제는 로그 파일을 확인하는 방법/특정 키워드를 읽는 방법을 모른다는 것입니다.
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 = "[email protected]"
authpass = "123"
smtpserver = "server"
recipient = "[email protected]"
sender = "[email protected].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