John Schmerge :: Projects :: Micron


About Me
Home

Rants

My Resume

Projects
Micron

Revamping the Linux Logging System

RedRat3 Linux Support

Micron - A Simple, Small, and Secure Cron Daemon

I know there are quite a few open-source cron's out there now, but looking at all of them I could not find a sane choice between them. I was not happy with some of the blatant security holes in certain versions and the feature bloat in others. The goal of Micron has been to create a Vixie-Cron replacement that is more secure and does not rely on E-mail as the only way of receiving job output.

As of version 0.0.3, the Cron daemon is quite usable. The only notable missing feature is the ability to mail job output to a user. A more complete list of features and differences follows:

Features

  • Small code and executable size - Currently the cron daemon executable is about half the size of Vixie-Cron. One of the goals of this program is to keep the daemon small as possible, while judiciously introducing new features. Currently, the stripped executable size for a typical build of this program is somewhere between 14 and 18 kilobytes on an x86 machine. For specifics for sizes with different CFLAGS values, click here .
  • A system crontab file for running system maintenance tasks.
  • Removal of the stupid useless features that Vixie-Cron added to the crontab file format.
  • Crontab file syntax that is compatible with the original crontab file syntax.
  • Full privilege de-escalation for any executed job; this eliminates any way of running code as root unless you have write-access to root's crontab.
  • Way of selecting where job output should be saved possible targets are:
    syslog, logfile, mail (not implemented in version 0.0.2), /dev/null, and stdout (only useful if running the cron daemon in debug mode).

Known Issues

  • Input and output of jobs is saved if you specify anyway of saving it except for mailing it.
  • Documentation does not yet exist on the crontab file format.
  • Need to create manpages for the cron daemon and crontab programs.

All versions of the code are available here for download.


News

[ Wed May 4 2005]
Version 0.0.4 is out. This is a bugfix only release. A bug was found that causes core dumps if user specifies the 'file' output method. A more complete list of changes follows:
  • Bugfixes to the output logging to a file
  • Inclusion of (incomplete) man pages
  • Improvement of the crontab parsing code - some size optimizations
You can get the new release here

[ Fri Apr 15 2005 ]
Happy income tax day! Version 0.0.3 is out. This new version includes:
  • A working crontab program
  • Autoconf/Automake integration
  • Improvements to job output logging
  • Improved memory management code
  • Several important bugfixes
You can get the new release here

[ Wed Mar 30 2005 ]
Yikes! Has it really been two years since I've updated this page? I'm really somewhat disappointed in myself for letting this slip for as long as it has... I've had this project on the back-burner for way too long.

I'm preparing to release version 0.0.3 sometime in the next two weeks. The new version will include:

  • A working crontab program
  • Autoconf/Automake integration
  • Improvements to job output logging
  • A good possibility of getting job output via email working
  • Improved memory management code
  • Some man pages will be included in the package
  • The same executable size
  • A fistful of bugfixes
After this release, the focus of development will be on getting mail working, documentation, size reduction, and fixing TODO items in the code. After that, I'm going to be working to release a version 1.0 of this code.

[ Tue Feb 11 2003 ]
Updated some of the information on this webpage. A feature list that gives people some information on why they would want to use Micron is now presented.

[ Sun Feb 9 2003 ]
Version 0.0.2 is out! This version adds support for job output. Output logging works for:
  • saving output via syslog
  • saving output to a file
  • sending output to /dev/null
  • and (if running crond with a '-d') sending output to /dev/tty
Sending job output via a mail client still doesn't work. This will change soon. You can get the source here

[ Wed Jan 22 2003 ]
After an rather long hiatus, version 0.0.1 is released. This version fixes a couple of issues with the last snapshot, but does not add a whole lot of new functionality. It does however contain much of the infrastructure needed to put job output to the correct places. You can get the source here

[ Tue May 14 2002 ]
Cron now runs tty-less and uses syslog.

[ Mon May 13 2002 ]
A working snapshot is here now. It took me a long time to write a relatively small amount of code. Anyways, this version supports multiple user's crontabs, will execute them and is a bit snappier than the last version.