Project

scron

0.0
No commit activity in last 3 years
No release in over 3 years
Run commands at scheduled intervals. If an interval is missed, the command will be run as soon as possible.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies
 Project Readme

Description

Scron is a scheduler for laptops/machines which aren't on 24/7.

Installation

$ gem install scron

Then configure cron to run it. I recommend every 2 hours, but you can put any interval here:

$ crontab -e
0 */2 * * * scron -r

Usage

Configure jobs in $HOME/.scron (scron -e to edit). This example means run cmd arg1 arg2 at least once every 30 days:

30d cmd arg1 arg2

You can also specify lower bounds like day of week (Su, Mo, Tu, We, Th, Fr, Sa), day of month (23rd), or day of year (4/15):

Mo,Fr    cmd1
1st,23rd cmd2
4/15     cmd3

cmd1 will attempt to run on Monday and Friday. If your machine is off the entire day, it will run as soon as possible. Here's an example timeline:

  • Mo: machine is off, nothing happens
  • Tu: machine is on, cmd1 runs to make up for Monday
  • We: already ran, nothing happens
  • Th: already ran, nothing happens
  • Fr: machine is on, cmd1 runs

Notes

An exit status of 0 is considered a success. Anything else is considered a failure and scron will attempt to re-run it again in 2 hours.

$HOME/.scrondb keeps the timestamps of the last run commands.

$HOME/.scronlog has the stdout, timestamps, and exit status of last scheduled commands.

TODO

  • rename process to scron

License

Copyright Hugh Bien - http://hughbien.com. Released under BSD License, see LICENSE.md for more info.