crontabinator
Repeatably install crontabs
This is a Capistrano 3.x plugin, and relies on SSH access with passwordless sudo rights.
Installation:
-
gem install crontabinator(Or add it to your Gemfile andbundle install.) - Add "require 'crontabinator'" to your Capfile
echo "require 'crontabinator'" >> Capfile - Create example configs:
cap crontabinator:write_example_configs - Turn them into real configs by removing the
_exampleportions of their names, and adjusting their content to fit your needs. (Later when you upgrade to a newer version of crontabinator, you cancrontabinator:write_example_configsagain and diff your current configs against the new configs to see what you need to add.) - Add the role
:cronto whatever servers you would like to have crons installed upon. - Ensure the
scripts.d/directory's files have 1 and only 1 line above your shebang line, in the form{ :user => "root", :schedule => '* * * * *', :stages => [:production] } - Ensure the
scripts.d/directory's files get set executable (E.G. usingdeployinator's:webserver_executeable_dirs)
Usage:
cap -T will help remind you of the available commands, see this for more details.
- After setting up your config files during installation, simply run:
cap <stage> crontab:setup - Run
cap <stage> crontab:statusto see the status of the crontabs.
Debugging:
- You can add the
--traceoption at the end of a command to see when which tasks are invoked, and when which task is actually executed.