Report required on all servers if file was created

Hello Experts,
We currently have 100+ server in the network and on each a scheduled tasks runs everynight which compresses certain files (legacy application db files). If db files are not locked or used at the time it is compressed the file size ranges from 10MB-1GB otherwise its locked or being used the compressed output is just 1KB.
What i wanted is that to create a batch file ...
1.0 Which checks the file size on each server.
   e.g...\\<Server1>\App\DComp\MSD.zip
           \\<Server2>\App\DComp\MSD.zip
           \\<Server3>\App\DComp\MSD.zip
           \\<Server4>\App\DComp\MSD.zip
        ...\\<Servern>\App\DComp\MSD.zip
2.0 Records only the server which has 1KB file.
3.0 Outputs to a text file.
      sample content in the text file
      \\<Server4>\App\DComp\MSD.zip IS ONLY 1KB.

Can you please at least show me or suggest some links to read as to how or where to start? I'm a newbie to programming (e.g. VB, etc...)
jsuanqueAsked:
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

x
 
RobSampsonConnect With a Mentor Commented:
Hi there,

Try this code.

Regards,

Rob.
Set objFSO = CreateObject("Scripting.FileSystemObject")

strServers = "servers.txt"
' In the following file, <SERVER> will be automatically replaced with each server read from the file
strFile = "\\<SERVER>\App\DComp\MSD.zip"
strOutput = "smallfiles.txt"

Set objOutput = objFSO.CreateTextFile(strOutput, True)
Set objFile = objFSO.OpenTextFile(strServers, 1, False)
While Not objFile.AtEndOfStream
	strServer = objFile.ReadLine
	If Ping(strServer) = True Then
		strRemoteFile = Replace(strFile, "<SERVER>", strServer)
		If objFSO.FileExists(strRemoteFile) = True Then
			If objFSO.GetFile(strRemoteFile).Size < 2048 Then
				objOutput.WriteLine strRemoteFile & " is less than 2K"
			End If
		Else
			objOutput.WriteLine "File not found: " & strRemoteFile
		End If
	Else
		objOutput.WriteLine strServer & " is offline."
	End If
Wend
objFile.Close
objOutput.Close

MsgBox "Done. Please see " & strOutput

Function Ping(strComputer)
	Dim objShell, boolCode
	Set objShell = CreateObject("WScript.Shell")
	boolCode = objShell.Run("Ping -n 1 -w 300 " & strComputer, 0, True)
	If boolCode = 0 Then
		Ping = True
	Else
		Ping = False
	End If
End Function

Open in new window

0
 
WaseemsCommented:
small suggestion remove the archive option from all files using attrib . -a any new file added or modifed should have the archive option so if you run attrib . | find "A " you will get the list of modified files
0
 
jsuanqueAuthor Commented:
Hello Waseems/RobSampson,
Definitely will try your suggestion...but at the moment, were advised to evacuate the office because of Cyclone warning :-)

Will get back hopefully tomorrow.
Cheers,
0
Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
RobSampsonCommented:
Yikes....that doesn't sound like fun!

Good luck.
0
 
jsuanqueAuthor Commented:
Thanks Rob.My apologies for the delay.
0
 
RobSampsonCommented:
No problem. Thanks for the grade.

Regards,

Rob.
0
All Courses

From novice to tech pro — start learning today.