Run a single cron job in the foreground, sending output to stdout. Works well in Docker.
Pass two arguments: the cron schedule and a string of the task to run.
# Run a script every minute
babycron '*/1 * * * *' 'sh path/to/script.sh'
# Run a script on start, and then again every six hours
babycron --run-on-start '0 */6 * * *' 'sh path/to/script.sh'
# Gzip and backup a Redis DB every day at midnight
babycron '0 0 * * *' 'cat /data/dump.rdb | gzip | pipedream -b backups -p backup.rdb.gz'Note that if you’re running a script you must include the interpreter in the
second argument (i.e. sh or /bin/sh), regardless if you have a #! and
executable permissions. Babycron will search your PATH, so things like bash
or sh, without the full path to the interpreter, is usually fine.
In Docker:
ENTRYPOINT [ "babycron", "* * * * *", "sh path/to/script.sh" ]
Output and errors are sent to stdout, so they'll appear in your Docker logs.
macOS and Linux users can use Homebrew:
brew tap meowgorithm && brew install babycronAdditional binaries can be found on the releases page (Linux x86_64/ARM, macOS x86_64, Windows x86_64/i386).
Or just use go get:
go get github.com/meowgoritm/babycronMIT