Check for any file older than X minutes in a directory
Below script could e.g. be used to monitor a directory where a fax is converted into a email.
If the directory is not empty within the "age_threshold" it should result in an alarm.
In custom.conf:
[Check for old files in C:\Path] type=boolean command=cscript /nologo C:\oldestfile.vbs C:\Path\
In oldestfile.vbs:
' This script processes the list of files in the directory passed as argument
' and returns 1 if any file is older than "age_threshold" minutes
' File age threshold in minutes
Dim age_threshold
age_threshold = 5000
Dim folder_path
folder_path = WScript.Arguments(0)
Dim fso, f
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.getFolder(folder_path)
Dim old_file_not_found
old_file_found = 0
For Each file in f.Files
Dim age
age = DateDiff("n", file.DateLastModified, Now)
If age > age_threshold Then
old_file_found = 1
Exit For
End If
Next
WScript.Quit(old_file_found)
If you need to check different subfolders in the specified directory the below extension of the script can be used:
In oldestfile.vbs:
' This script processes the list of files in the directory’s subfolders (i.e. recursively) passed as argument
' and returns 1 if any file is older than "age_threshold" minutes
' File age threshold in minutes
Dim age_threshold
age_threshold = 5000
Dim old_file_not_found
old_file_found = 0
sub scanFolder(objFolder)
Dim fso, f
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.getFolder(objFolder)
For Each file in f.Files
Dim age
age = DateDiff("n", file.DateLastModified, Now)
If age > age_threshold Then
old_file_found = 1
Exit For
End If
Next
if old_file_found = 0 Then
dim subfolderPath, ObjSubfolder
For each subfolderPath in f.SubFolders
Set ObjSubfolder = fso.GetFolder(subfolderPath)
scanFolder(ObjSubfolder)
Set ObjSubfolder = nothing
Next
end if
end sub
scanFolder(WScript.Arguments(0))
WScript.Quit(old_file_found)