使用CRON作业运行curl命令

时间:2013-07-25 06:50:46

标签: curl cron scheduled-tasks

我想运行这个声明:

curl 'http://localhost:8983/solr/dataimport?command=full-import'

每10分钟使用CRON作业。

我如何实现这一目标?

3 个答案:

答案 0 :(得分:9)

类似的东西:

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

之后使用crontab -l查看它。 BUT ,为该curl命令添加一个选项,将输出放在特定的位置,因为它可能会运行到您没有写访问权限的某个地方。此外,如果curl处于异常状态,您可能需要指定其完整路径,例如/usr/bin/curl,或设置crontab PATH变量。

EOF周围的引号会阻止HEREIS文档内容中的替换(<<EOFEOF). HEREIS documents are a shell feature, not part of crontab`之间的所有内容。

有关crontab文件内容的详细信息,请参阅man 5 crontab

我通常使用特殊的第一行保存~/.crontab文件,并设置执行位:

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

这让我可以编辑我的~/.crontab,然后只需运行:

$ vi ~/.crontab
$ ~/.crontab

(我通常也会对它们进行扩展以指示它们所用的主机,例如〜/ .crontab.bigbox)

答案 1 :(得分:5)

如果使用Cpanel:
Cpanel-&gt; Cron Jobs-&gt;放置时间间隔(* / 10 * * * *)
在文本框中添加命令:
curl -s "http://localhost:8983/solr/dataimport?command=full-import"
其中 -s 代表无声(无输出)
你完成了

答案 2 :(得分:0)

对于蓝色主机和去爸爸服务器:

curl -s "http://localhost:8983/solr/dataimport?command=full-import"