This question already has an answer here:

I want to write a script that add a cron job to my crontab but without user intervention like editing a file using crontab -e. Is there a way to programatically manipulate the cron jobs from command line? Any suggestion on how to do that? Thanks in advance.

marked as duplicate by Jacob Vlijm, Rinzwind, Fabby, αғsнιη, Mitch Feb 26 '15 at 6:42

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

  • 1
    crontab uses the values of the VISUAL and EDITOR variables to determine the program which will edit the crontab - the variables can contain, for example, the path to a script, or shell commands, using which you can programmatically edit it. See for example, unix.stackexchange.com/a/179445/70524 using this to edit suoders. – muru Feb 25 '15 at 14:12

To install a crontab:

echo "1 1  * * *  test" | crontab -

should do the trick.

NOTICE that this substitutes the whole crontab. You have to save the value it had with crontab -l if you just want to add/edit things. For example

(crontab -l && echo "1 1  * * *  test") | crontab -

will add the line to your crontab.


How about the following:

crontab -l | some-editing-command | EDITOR=cat crontab -e

The first part of the pipe lists the current crontab, the second part is supposed to modify it in a sensible way, and the third part reinstalls it using cat as the "editor", as suggested by @muru.

Not the answer you're looking for? Browse other questions tagged or ask your own question.