| |
| |
| |
| |
| |
| |
| |
| MonSubject="NetInterface" |
| Set Args=WScript.Arguments |
| If (Args.Count<1) Then |
| Wscript.Echo MonSubject & " -1:command line error" |
| WScript.Quit(3) |
| End If |
| strcid=Args(0) |
| |
| tmparr=Split(Wscript.ScriptFullName,"\",-1) |
| g_strworkdir=tmparr(0) |
| narr=UBound(tmparr,1) |
| For i=1 to narr-3 |
| g_strworkdir=g_strworkdir & "\" & tmparr(i) |
| Next |
| |
| set g_fileSys = createObject ("Scripting.FileSystemObject") |
| Sub includeFile (fSpec) |
| dim file, fileData |
| set file = g_fileSys.openTextFile (fSpec) |
| fileData = file.readAll () |
| file.close |
| executeGlobal fileData |
| set file = nothing |
| end sub |
| includeFile g_strworkdir & "\nagios\libexec\libcomm.vbs" |
| |
| |
| |
| getverhelp strcid,"v1.00"," <cid>" |
| |
| strComputer = "." |
| Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") |
| |
| |
| Set colItems = objWMIService.ExecQuery("Select * from Win32_PerfRawData_Tcpip_NetworkInterface",,48) |
| Dim BytesTotalPersec1(20),TimeValue1(20),Name1(20),CurrentBandwidth(20),BytesReceivedPerSec1(20),BytesSentPerSec1(20),PacketsReceivedPerSec1(20),PacketsSentPerSec1(20),_ |
| BytesTotalPersec(20),PercentNetwork(20),BytesReceivedPerSec(20),BytesSentPerSec(20),PacketsReceivedPerSec(20),PacketsSentPerSec(20) |
| n=0 |
| For Each objItem in colItems |
| Name1(n) = objItem.Name |
| BytesTotalPersec1(n) = objItem.BytesTotalPersec |
| BytesReceivedPerSec1(n) = objItem.BytesReceivedPerSec |
| BytesSentPerSec1(n) = objItem.BytesSentPerSec |
| PacketsReceivedPerSec1(n) = objItem.PacketsReceivedPerSec |
| PacketsSentPerSec1(n) = objItem.PacketsSentPerSec |
| TimeValue1(n) = objItem.Timestamp_PerfTime |
| CurrentBandwidth(n) = objItem.CurrentBandwidth |
| TimeBase = objItem.Frequency_PerfTime |
| n=n+1 |
| Next |
| |
| |
| WScript.Sleep 1000 |
| Set colItems = objWMIService.ExecQuery("Select * from Win32_PerfRawData_Tcpip_NetworkInterface",,48) |
| Dim BytesTotalPersec2(20),TimeValue2(20),Name2(20),BytesReceivedPerSec2(20),BytesSentPerSec2(20),PacketsReceivedPerSec2(20),PacketsSentPerSec2(20) |
| k=0 |
| For Each objItem in colItems |
| Name2(k) = objItem.Name |
| BytesTotalPersec2(k) = objItem.BytesTotalPersec |
| BytesReceivedPerSec2(k) = objItem.BytesReceivedPerSec |
| BytesSentPerSec2(k) = objItem.BytesSentPerSec |
| PacketsReceivedPerSec2(k) = objItem.PacketsReceivedPerSec |
| PacketsSentPerSec2(k) = objItem.PacketsSentPerSec |
| TimeValue2(k) = objItem.Timestamp_PerfTime |
| k=k+1 |
| Next |
| |
| j=0 |
| For i=0 to n-1 |
| If TimeValue2(j) - TimeValue1(j) = 0 Then |
| strnetwork = "BytesTotalPersec=0" |
| Else |
| |
| |
| BytesTotalPersec(j) = (BytesTotalPersec2(j) - BytesTotalPersec1(j)) / ((TimeValue2(j) - TimeValue1(j)) / TimeBase) |
| PercentNetwork(j) = BytesTotalPersec(j)*8*100 / CurrentBandwidth(j) |
| PercentNetwork(j) = round(PercentNetwork(j),2) |
| |
| |
| BytesReceivedPerSec(j) = (BytesReceivedPerSec2(j) - BytesReceivedPerSec1(j)) / ((TimeValue2(j) - TimeValue1(j)) / TimeBase)/1024 |
| BytesReceivedPerSec(j) = round(BytesReceivedPerSec(j),2) |
| |
| |
| BytesSentPerSec(j) = (BytesSentPerSec2(j) - BytesSentPerSec1(j)) / ((TimeValue2(j) - TimeValue1(j)) / TimeBase)/1024 |
| BytesSentPerSec(j) = round(BytesSentPerSec(j),2) |
| |
| |
| PacketsReceivedPerSec(j) = (PacketsReceivedPerSec2(j) - PacketsReceivedPerSec1(j)) / ((TimeValue2(j) - TimeValue1(j)) / TimeBase) |
| PacketsReceivedPerSec(j) = round(PacketsReceivedPerSec(j),2) |
| |
| |
| PacketsSentPerSec(j) = (PacketsSentPerSec2(j) - PacketsSentPerSec1(j)) / ((TimeValue2(j) - TimeValue1(j)) / TimeBase) |
| PacketsSentPerSec(j) = round(PacketsSentPerSec(j),2) |
| |
| |
| CurrentBandwidth(j) = CInt(CurrentBandwidth(j)/1000/1000) |
| End If |
| If j = 0 Then |
| Wscript.Echo MonSubject & " 0:OK|Name=" & Name1(j) & ",PercentNetwork=" & PercentNetwork(j) & ",BytesReceivedPerSec=" & BytesReceivedPerSec(j) & ",BytesSentPerSec=" & BytesSentPerSec(j) _ |
| & ",PacketsReceivedPerSec=" & PacketsReceivedPerSec(j) & ",PacketsSentPerSec=" & PacketsSentPerSec(j) & ",CurrentBandwidth=" & CurrentBandwidth(j) |
| End If |
| |
| j=j+1 |
| NextCOPY |