Clayton Murphy
Clayton Murphy

Reputation: 23

Alert if no files written > 7 days

Each week we have a backup file replicate over to a folder on our file server. I'm looking for a way to notify me if a file has not been written to that folder in over 7 days.

I found this script online (I apologize to the author for not being able to credit), and I feel like it put's me on the right track. What I'm really looking for though is some kind of output that will tell me if a file hasn't been written at all. I don't need confirmation if the backup is successful.

$lastWrite = (get-item C:\ExampleDirectory).LastWriteTime
$timespan  = new-timespan -days 7
if (((get-date) - $lastWrite) -gt $timespan) {
    # older
} else {
    # newer
}

Upvotes: 0

Views: 793

Answers (1)

Mathias R. Jessen
Mathias R. Jessen

Reputation: 174795

Want you'll want to do is grab all files in the directory, sort by LastWriteTime and then compare that of the newest file to 7 days ago:

$LastWriteTime = (Get-ChildItem C:\ExampleDirectory |Sort LastWriteTime)[-1].LastWriteTime
if($LastWriteTime -gt [DateTime]::Now.AddDays(-7))
{
    # File newer than 7 days is present
}
else
{
    # Something is wrong, time to alert!
}

For the alerting part, check out Send-MailMessage or Write-EventLog

Upvotes: 3

Related Questions