Scron is a scheduler for laptops/machines which aren't on 24/7.
$ 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
Configure jobs in
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
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
- rename process to scron
Copyright Hugh Bien - http://hughbien.com. Released under BSD License, see LICENSE.md for more info.