Run a curl command using CRON jobs

cron, curl, scheduled-tasks

Solution

Something like:

crontab <<'EOF'
SHELL=/bin/bash
#min hr md mo wkday command
*/10 *  *  *  *     curl 'http://localhost:8983/solr/dataimport?command=full-import'
EOF

Use `crontab -l` to get a look at it afterwards. BUT, add an option to that `curl` command to put the output somewhere specific, since it might be run somewhere to which you don't have write access. Also, if `curl` is anywhere unusual, you may need to specify its full path, like `/usr/bin/curl`, or set the `crontab` PATH variable.

The quotes around `EOF` prevent substitution in the contents of the HEREIS document (everything between the `<<EOF` and `EOF). HEREIS documents are a shell feature, not part of`crontab`.

See `man 5 crontab` for a detailed breakdown of what goes in crontab files.

I usually keep a `~/.crontab` file to edit with a special first line, and the execute bit set:

#!/usr/bin/env crontab 
SHELL+/bin/sh
[... etc.]

This lets me edit my `~/.crontab` and then just run it with:

$ vi ~/.crontab
$ ~/.crontab

(I also usually have extensions on them to indicate which host they're for, like ~/.crontab.bigbox)

Problem

I want to run this statement: ``` curl 'http://localhost:8983/solr/dataimport?command=full-import' ``` every 10 minutes using CRON jobs. How do I achieve this?

Original source