Every scheduled task should, as it completes, records its status somewhere. A separate process should -- however frequently you need -- check to see that everything that should have run actually did run. Anything failed, raise an alarm.

As that process completes, it records its own status in a different location. A final process, on a different system, looks for that status. If it's not there, raise the alarm.

Increase layers of redundancy until your sense of paranoia is satisfied.





Oh, and never ever ever have a scheduled process that isn't tracked and checked by your watcher process.