[Box Backup-dev] Re: [Box Backup] ChrisMerge_1828
James O'Gorman
boxbackup-dev@fluffy.co.uk
Fri, 14 Sep 2007 14:15:10 +0100
--VuQYccsttdhdIfIP
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
On Thu, Sep 13, 2007 at 10:39:48PM +0100, James O'Gorman wrote:
> On Thu, Sep 13, 2007 at 10:19:41PM +0100, Chris Wilson wrote:
> > Anything you can get easily would be great :-) I suspect most people don't
> > have machines with duplicate names in different domains anyway, and they can
> > customise the script if they do :-)
>
> OK, I'll add that in tomorrow.
Right, here's version 3. I think that should do the trick for now. I
added a new "account" variable too, so that the user can put their
account number in there (previously there was an %%account%%
placeholder).
James
--VuQYccsttdhdIfIP
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="NotifySysAdmin-v3.vbs"
Dim hostname
Dim account
Dim from
Dim sendto
Dim subjtmpl
Dim subject
Dim body
Dim smtpserver
Set WshNet = CreateObject("WScript.Network")
hostname = WshNet.ComputerName
account = "0a1"
from = "boxbackup@" & hostname
sendto = "admin@example.com"
subjtmpl = "BACKUP PROBLEM on host " & hostname
smtpserver = "smtp.example.com"
Set args = WScript.Arguments
If args(0) = "store-full" Then
subject = subjtmpl & " (store full)"
body = "The store account for "&hostname&" is full." & vbCrLf & vbCrLf & _
"=============================" & vbCrLf & _
"FILES ARE NOT BEING BACKED UP" & vbCrLf & _
"=============================" & vbCrLf & vbCrLf & _
"Please adjust the limits on account "&account&" on server "&hostname&"." _
& vbCrLf
SendMail from,sendto,subject,body
ElseIf args(0) = "read-error" Then
subject = subjtmpl & " (read errors)"
body = "Errors occured reading some files or directories for backup on "&hostname&"." _
& vbCrLf & vbCrLf & _
"===================================" & vbCrLf & _
"THESE FILES ARE NOT BEING BACKED UP" & vbCrLf & _
"===================================" & vbCrLf & vbCrLf & _
"Check the logs on "&hostname&" for the files and directories which caused" & _
"these errors, and take appropraite action." & vbCrLf & vbCrLf & _
"Other files are being backed up." & vbCrLf
SendMail from,sendto,subject,body
Else
subject = subjtmpl & " (unknown)"
body = "The backup daemon on "&hostname&" reported an unknown error." _
& vbCrLf & vbCrLf & _
"==========================" & vbCrLf & _
"FILES MAY NOT BE BACKED UP" & vbCrLf & _
"==========================" & vbCrLf & vbCrLf & _
"Please check the logs on "&hostname&"." & vbCrLf
SendMail from,sendto,subject,body
End If
Function CheckSMTPSvc()
Set objWMISvc = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colSMTPSvc = objWMISvc.ExecQuery("Select * From Win32_Service " _
& "Where Name='SMTPSVC'")
If colSMTPSvc.Count > 0 Then
CheckSMTPSvc = True
Else
CheckSMTPSvc = False
End If
End Function
Sub SendMail(from,sendto,subject,body)
Set objEmail = CreateObject("CDO.Message")
Dim cdoschema
cdoschema = "http://schemas.microsoft.com/cdo/configuration/"
With objEmail
.From = from
.To = sendto
.Subject = subject
.TextBody = body
If CheckSMTPSvc = False Then
.Configuration.Fields.Item(cdoschema & "sendusing") = 2
.Configuration.Fields.Item(cdoschema & "smtpserver") = smtpserver
.Configuration.Fields.Item(cdoschema & "smtpserverport") = 25
.Configuration.Fields.Update
End If
End With
objEmail.Send
End Sub
--VuQYccsttdhdIfIP--