This plugin object is to check if a file has been inside certain folder
for a period of time and alert if so.
It’s still not fully developed so the variables are not passed as arguments
but are inside the script, so Directory and Time are configured within the .vbs.
In our case the files came in via FTP and some external process should move these
files some where else, sometimes these work how it should, so we monitor it to detect and
fix failures, thats what a good SysAdmins do!
Download it here
'Script Check for files in folders 'Author: Felipe Ferreira 'Data: 29/07/2011 'Version: 2.0 (nagios) ' TODO: 'ok 1. Have arrray of folders to be checked, pass time as argument 'ok 2. Output folder that has problems '---------- VARs Const intOK = 0 Const intCritical = 2 Const intError = 3 Const ForReading=1,ForWriting=2,ForAppending=8 Dim filename,filenamemov,emailaddr Dim arrFolders(17) Dim argcountcommand,dteToday Dim arg(4) Dim strMailServer,Verbose,strExt,intTimeOld,intIndex Dim intcount : intCount = 0 Dim stroutput 'option explicit '----------EDIT LINES intTimeOld = 15 ' how many seconds old are the files Verbose = 0 ' 1 FOR DEBUG MODE, 0 FOR SILENT MODE '----------EDIT LINES dteToday = now() 'DatePart("m",Now()) pt "Today = " & dteToday arrFolders(0) = "X:digitalXLocalUserftp_fotXama - Locais" arrFolders(1) = "X:digitalXLocalUserftp_fotXama_Bairros" arrFolders(3) = "X:digitalXLocalUserftp_fotGlobo_Remotas" arrFolders(4) = "X:digitalXLocalUserftp_sfotocol" arrFolders(5) = "X:digitalXLocalUserftp_sAudioevideo" arrFolders(6) = "X:digitalXLocalUserftp_svide" For intIndex = 0 To UBound(arrFolders) pt "Checking folder: " & arrFolders(intIndex) if arrFolders(intIndex) = "" then pt "Empty folder value!" Exit For else call checkfiles(arrFolders(intIndex)) end if Next if intCount >= 1 then wscript.echo "CRITICAL - " & intCount & " Arquvio(s) com mais de " & intTimeOld & " minutos em " & stroutput wscript.quit(intCritical) else wscript.echo "OK - Nenhum diretorio contem arquvios com mais de 5 minutos" wscript.quit(intOK) end if sub checkfiles(folderspec) 'check if any files exist on folder on error resume next Dim fs : Set fs = CreateObject("Scripting.FileSystemObject") If (fs.FolderExists(folderspec)) Then Set f = fs.GetFolder(folderspec) Set fc = f.Files For Each f1 in fc intDif = DateDiff("n",f1.DateCreated,dteToday) pt f1.name & " - " & f1.DateCreated & " - " & dteToday & " DIFF= " & intDIf If (intDif > intTimeOld) then stroutput = stroutput & folderspec & f1.name & " ("& intDIf & "min) , " intCount = intCount + 1 end if next else wscript.echo "ERROR - Diretorio: " & folderspec & " nao foi encontrado." wscript.quit(intError) end if set fs = nothing end sub sub pt(txt) if Verbose = 1 then wscript.echo txt end if end sub