Runs important cronjobs until they succeed

"The existence of a golem is sometimes a mixed blessing.
Golems are not intelligent - if commanded to perform a task,
they will take the instructions perfectly literally."
-- Wikipedia

What is noexcuses? | Features | Supported Platforms | Documentation | Download

What is noexcuses?

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 didn'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 optional initscript /etc/init.d/noexcuses can make this 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.

noexcuses is freely available under the GNU General Public License, either version 2 of the License, or (at your option) any later version.


For more information read the manual entry in the Documentation section.

Supported Platforms

noexcuses is written in Perl and should run on any UNIX-like system where cron runs. There are no dependencies on any non-standard Perl modules.


There is a manual entry:

noexcuses(1) - the noexcuses(1) manpage


noexcuses-1.0.tar.gz [60575 bytes, 20200625] (SHA256 cab7819d9a4aa76d9019cb86ee4d53cec257b22b8d59cfcbf3edace13ea2449f)
noexcuses-0.2.tar.gz [27393 bytes, 20080328] (SHA256 571db4c4307ecb59d315dcbd49eacfbcebc9db88509fc841c5e633b135b417ea)
noexcuses-0.1.tar.gz [27431 bytes, 20070131] (SHA256 b64ec968fa7f420eafb96ae43c95a70f5ada98331c2854c28a1bc334fa4c7f50)

What is noexcuses? | Features | Supported Platforms | Documentation | Download

Last modified by raf at Thu 25 Jun 20:06:25 AEST 2020