The netstat-statistics.vbs script will loop forever doing a "netstat -s" every N seconds. Where N is specified as an argument. It is basically a way to monitor the health of the TCP/IP environment and create a baseline of network usage.
To execute the script open a command window and type cscript netstat-statistics.vbs SLEEPTIME, where SLEEPTIME is the time between iterations of netstat. A line giving the date, time and domain\computer name is printed every time the netstat command is run. This is done so you have some idea that something is happening.
C:\noah>cscript netstat-statistics.vbs 5
C:\noah>cscript netstat-statistics.vbs 5
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.
============ 2009-5-8 12:28:19 PM - 4400-DEC514859B\4400-DEC514859B============
============ 2009-5-8 12:28:25 PM - 4400-DEC514859B\4400-DEC514859B============
============ 2009-5-8 12:28:30 PM - 4400-DEC514859B\4400-DEC514859B============
============ 2009-5-8 12:28:35 PM - 4400-DEC514859B\4400-DEC514859B============
============ 2009-5-8 12:28:40 PM - 4400-DEC514859B\4400-DEC514859B============
============ 2009-5-8 12:28:45 PM - 4400-DEC514859B\4400-DEC514859B============
============ 2009-5-8 12:28:50 PM - 4400-DEC514859B\4400-DEC514859B============
============ 2009-5-8 12:28:55 PM - 4400-DEC514859B\4400-DEC514859B============
============ 2009-5-8 12:29:01 PM - 4400-DEC514859B\4400-DEC514859B============
^C
C:\noah>
|
The netstat output is collected in a file named netstat-statistics.YY-MM-DD.txt, where YY-MM-DD represents the current date in year-month-day format. Each iteration is preceded by a header line giving the date and time and the system's domain\computer-name.
C:\noah>type netstat-statistics.09-5-8.txt ============ 2009-5-8 12:28:19 PM - 4400-DEC514859B\4400-DEC514859B============ IPv4 Statistics Packets Received = 96737775 Received Header Errors = 0 Received Address Errors = 226420 Datagrams Forwarded = 0 Unknown Protocols Received = 0 Received Packets Discarded = 0 Received Packets Delivered = 96511365 Output Requests = 2149568 Routing Discards = 0 Discarded Output Packets = 0 Output Packet No Route = 0 Reassembly Required = 0 Reassembly Successful = 0 Reassembly Failures = 0 Datagrams Successfully Fragmented = 0 Datagrams Failing Fragmentation = 0 Fragments Created = 0 ICMPv4 Statistics Received Sent Messages 24259120 114 Errors 0 0 Destination Unreachable 23720257 99 Time Exceeded 538857 0 Parameter Problems 0 0 Source Quenches 0 0 Redirects 0 0 Echos 6 0 Echo Replies 0 6 Timestamps 0 0 Timestamp Replies 0 0 Address Masks 0 0 Address Mask Replies 0 0 TCP Statistics for IPv4 Active Opens = 23 Passive Opens = 28 Failed Connection Attempts = 15 Reset Connections = 21 Current Connections = 5 Segments Received = 1605371 Segments Sent = 1607575 Segments Retransmitted = 147 UDP Statistics for IPv4 Datagrams Received = 70635415 No Ports = 24273291 Receive Errors = 8739 Datagrams Sent = 541732 ============ 2009-5-8 12:28:25 PM - 4400-DEC514859B\4400-DEC514859B============ IPv4 Statistics . . . ============ 2009-5-8 12:28:30 PM - 4400-DEC514859B\4400-DEC514859B============ . . . ============ 2009-5-8 12:28:35 PM - 4400-DEC514859B\4400-DEC514859B============ . . . ============ 2009-5-8 12:28:40 PM - 4400-DEC514859B\4400-DEC514859B============ . . . ============ 2009-5-8 12:28:45 PM - 4400-DEC514859B\4400-DEC514859B============ . . . ============ 2009-5-8 12:28:50 PM - 4400-DEC514859B\4400-DEC514859B============ . . . ============ 2009-5-8 12:28:55 PM - 4400-DEC514859B\4400-DEC514859B============ . . . ============ 2009-5-8 12:29:01 PM - 4400-DEC514859B\4400-DEC514859B============ C:\noah> |
Data from two separate invocations of the script done on the same date will be collected into the same file. The script will not delete the file before starting to collect data.
If the script is running when the date changes any new data will be collected into a new file that represents the new current date.
Here is the script. You should be able to copy it, paste it into a file and run it.
REM == netstat-statistics.vbs starts here REM REM netstat-statistics.vbs REM version 1.1 09-05-08 REM version 1.2 10-11-26 added disclaimer REM Noah Davids - noah.davids@stratus.com REM REM This script loops forever doing a "netstat -s" to collect the TCP/IP REM statistics on the system. It delays for SleepTime seconds at the end of REM each loop. SleepTime is the only argument. The statistics are collected in REM a file named netstat-statistics.DATE.txt where DATE is the current date. REM REM The current version of this script and documentation may be found at REM http://noahdavids.org/self_published/netstat-statistics.vbs.html REM REM to run the script execute the command REM cscript netstat-statistics.vbs SleepTime REM from a command window. REM REM feel free to contact me with any questions or comments REM REM This software is provided on an "AS IS" basis, WITHOUT ANY WARRANTY OR ANY SUPPORT OF ANY KIND. REM The AUTHOR SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY REM PARTICULAR PURPOSE. This disclaimer applies, despite any verbal representations of any kind provided REM by the author or anyone else. REM option explicit dim SleepTime dim wshShell dim WshNetwork dim Today dim TodaysDate dim CurrentTime dim Message dim FillerLen dim Header Header = "==================================================" if WScript.Arguments.Count <> 1 then WScript.Echo "Usage:" WScript.Echo vbtab & "csript netstat-statistics.vbs SleepTime" WScript.Echo vbtab & vbtab & "SleepTime is time in seconds between netstats" WScript.Echo else SleepTime = WScript.Arguments (0) SleepTime = SleepTime * 1000 Set WshShell = WScript.CreateObject ("WScript.Shell") Set WshNetwork = WScript.CreateObject("WScript.Network") Do While (true) Today = Date TodaysDate = Year(Today) & "-" & Month (Today) & "-" & Day (Today) CurrentTime = time Message = TodaysDate & " " & time & " - " _ & WshNetwork.UserDomain & "\" & WshNetwork.ComputerName FillerLen = (78 - Len (Message)) / 2 Message = Mid (Header, 1, FillerLen) & " " & Message & Mid (Header, 1, FillerLen) WshShell.Run "Cmd.exe /c echo " & Message & " >> netstat-statistics." & _ TodaysDate & ".txt", 0, True WshShell.Run "Cmd.exe /c netstat -s >> netstat-statistics." & TodaysDate & _ ".txt", 0, True Wscript.Echo Message WScript.Sleep SleepTime Loop end if REM REM == netstat-statistics.vbs ends here |