Package: crone
crone: a little extension to cron with timezone supportOVERVIEWLike cron, but you can further indicate the timezone, the period and intervalto run a command (tested on python 2.6 but should be fine to run with olderpython release). See USAGE for more detailed information.INSTALL1. Download the source distribution2. Untar/unzip the source distribution3. Run python setup.py install*** the module will appear as an editable source file in site-packages.or1. Run easy_install crone*** the module will appear as an uneditable binary file in site-packages.USAGELike cron, but you have more flexibility to scope down the time you want yourcommands executed. First of all, you have to ask cron to run crone.py everyminute with something like:* * * * * python -m crone -p cronetab > crone.log 2>&1In your cronetab file, you specify crone (cron with extension) tasks, like:* * * * * * * * * echo "Hello World!"| | | || | |  --> timezone, e.g. Australia/Melbourne and UTC (* = UTC)| | --> interval from begin, e.g. 7d and 14d (* = 1d)| --> end period, e.g. 2011-11-11T11:11:11 (* = 2099-12-31T23:59:59)--> begin period, e.g. 2011-11-11T11:11:11 (* = 2000-01-01T00:00:00)The first five conditions are exactly like cron. However, not all formats aresupported. At the moment, something like 1, 1,2,3, 0-10, * and */2, includingall of them combined like 1,2,*,*/5,2-9 should work. The last fours are begin,end, interval (calculated from begin) and timezone conditions. Subject to thisextension a command is executed iff the current time in the given timezone iswithin the period, i.e. begin to end (specified in format YYYY-mm-ddTHH:MM:SS)inclusively, and falls within the interval -- either day e.g. 7d, hour e.g. 7hor mintue e.g. 7m.More examples of cronetab entries are shown below. Note that an entry prefixedwith # will never ever be executed.*/5 */1 * * * * * * Australia/Melbourne echo "Hello Melbourne!"* * * * * 2011-11-15T00:00:00 * 1d Australia/Melbourne echo "Hello Melbourne!"#* * * * * * * * * echo "Hello Melbourne!"To view all possible arguments, you run python -m crone -h and will see thingssimilar to below:Usage: crone.py [options]Options:-h, --help            show this help message and exit-p PATH, --path=PATH  path to the cronetab file (default is ~/.cronetab)-t TZPATH, --tzpath=TZPATHpath to the timezone directory (default is/usr/share/zoneinfo)--concurrent          run commands concurrentl (default if False)You use -p to indicate the absolute path to your cronetab file, and you use -tto indicate the absolute path to the directory that contains timezone data. Seehttp://www.linuxsa.org.au/tips/time.html for information about this topic. Onmy machine, the directory is /usr/share/zoneinfo, so it is default in crone. Bydefault, crone executes commands in order, waiting for each to complete beforeexecuting the next. If you flag --concurrent, crone will executes commands inconcurrent manner.DEPENDENCIESpyparsing (easy_install pyparsing)dateutil (easy_install python-dateutil)CONTACTIf you have suggestions, reqeusts, etc, please feel free to create an issue inGitHub. Pull requests are also very much welcome.RELEASE NOTE1.0.0: Initial release.1.0.1: Add more information, instruction, etc.1.0.2: Resolve issues #1 and #2 (mostly about unit testing).1.0.3: Resolve issues #3, #5, #6 and #7 (bug fixes and improvements).