Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Human-friendly Cron replacement in NodeJS
JavaScript
branch: master
Failed to load latest commit information.
bin job scheduling
docs job scheduling
examples job scheduling
lib job scheduling
.gitignore impl daemon
.npmignore ship docs
README.md Update README.md
index.js job scheduling
package.json 0.1.1

README.md

shell-jobs

Human-friendly Cron replacement in NodeJS, based on english-time.

.jobs files look like this;

echo `date '+%d %h %H:%M'` > /tmp/now # => 1 second
echo "Good Morning" # => every 6am
echo "Hello World" # => 5 seconds, 200 milliseconds
echo "CATS" # => every 4 hours and 15 minutes
echo "YO" # => from tomorrow 6am, every 1h + 5 mins

And runs like this;

Looking for a handier simple tool? Try: run-after

Install

$ npm install -g shell-jobs

Usage

Create a new file and call it new.jobs

echo "every 3.5 hours" >> /tmp/logs  # => 3 hours 30 seconds
echo "every 5 minutes" >> /tmp/logs  # => 5 minutes
echo "good morning sir!"             # comments here are ok. => 8am
echo "every 4 weeks" >> /tmp/logs    # => 4 weeks

Then run it;

$ shell-jobs new.jobs # globbing enabled

Process outputs are hidden by default. Use --out to print the stdout of certain jobs;

$ shell-jobs new.jobs -o 3 # will be printing the stdout of the third job 'echo "this is a new day!"'

Wanna run it as a daemon on the background?

$ shell-jobs new.jobs -d

Debugging

To investigate how shell-jobs parses your document, run -c option:

$ shell-jobs new.jobs -c

It'll list all commands with parsed schedulings and delay times.

To let shell-jobs output all the logs:

DEBUG=* shell-jobs new.jobs

Manual


    USAGE

        shell-jobs [files] [options]

    OPTIONS

        -d    --daemon     Run as daemon on the background.
        -s    --stop       Stop the running daemon.
        -c    --confirm    Make sure if given jobs parsed correctly.
        -o    --out        Show outputs from the commands at specified index(es). e.g -o 0, 2, 3
        -v    --version    Show version and exit
        -h    --help       Show help and exit

List of Recognized Time Units

Milliseconds

  • ms
  • millisec
  • millisecs
  • milliseconds
  • millisecond

Second(s)

  • s
  • sec
  • secs
  • seconds
  • second

Minute(s)

  • m
  • min
  • mins
  • minute
  • minutes

Hour(s)

  • h
  • hour
  • hours

Day(s)

  • d
  • day
  • days

Week(s)

  • w
  • week
  • weeks

Something went wrong with that request. Please try again.