0.2 GPL (GNU General Public License)    
3.9/5 14
Noexcuses is a disaster recovery software.




Sometimes cronjobs fail to run successfully because a required server (like a database or ftp server) is temporarily unavailable due to power failures, hardware failures, software failures, network outages, choice of operating system, pilot error, and the like.

Typically, this results in someone being forced to examine crontabs and error reports, determine which cronjobs really need to be run, and then run them manually. This happened to me twice in one week. I don't want it to happen again. Cronjobs are meant to be automated and I want them to stay that way.

This is the rationale for noexcuses. It keeps track of cronjobs that have failed and keeps running them until they succeed. All you have to do is look at your crontabs, identify the cronjobs-that-must-succeed-no-matter-what and insert noexcuses before the command.

Then, when cron runs noexcuses, noexcuses will run the given cronjob. If the cronjob fails, noexcuses becomes a daemon that will retry the cronjob regularly until it succeeds. Even if the cron host is rebooted before the cronjob succeeds, noexcuses lets you restart all of the outstanding cronjobs. If you can't wait for the cron host to reboot, its outstanding cronjobs can be relocated to another cron host and be forgotten on the original host when it finally reboots. Also, if the cron host is down for a while, noexcuses can tell you which cronjobs missed out on running while it was down and run them. The initscript noexcuses.init can make all these things happen automatically at boot time.

In other words, noexcuses is a free, lightweight, fine-grained, unobtrusive, high-availability tool for cronjobs. Or rather, it's a high-recoverability tool for cronjobs which can either be incorporated into a highly available system or used in the absence of one.

Here are some key features of "Noexcuses":

Makes cronjobs persist when faced with transient remote errors
Makes cronjobs persist across reboots of the local cron host
Identifies and runs cronjobs scheduled while the cron host was down
Mirrors its state to protect the above from disk failure
Supports relocation of cronjobs to another cron host
Lets you report, examine, cancel and run outstanding cronjobs
Eliminates much tedious disaster recovery work




To install noexcuses under /usr:

make install

To install somewhere else (e.g. /usr/local):

make prefix=/usr/local install

To uninstall:

make [prefix=/usr/local] uninstall

To install the initscript (only with SVR4-style init scripts):

make install-init

To uninstall the initscript:

make uninstall-init

For more details:

make help

What's New in This Release:

A bug with the -k option (on Solaris) was fixed and a typographical error in the manpage was fixed.
Last updated on May 12th, 2008

0 User reviews so far.