如何使用 cron 作业发送 HTML GET 请求?

发布于 2024-12-21 23:43:05 字数 62 浏览 1 评论 0原文

我想设置一个 cron 作业,将 http 请求发送到 url。我该怎么做?我以前从未设置过 cronjob。

I would like to set up a cron job which sends an http request to a url. How would I do this? I have never set up a cronjob before.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

离旧人 2024-12-28 23:43:05

cron 作业只是一个按预先设定的时间间隔在后台执行的任务。

您几乎可以用任何语言编写该工作的实际代码 - 甚至可以是简单的 php 脚本或 bash 脚本。

PHP 示例:

#!/usr/bin/php -q
<?php 

file_put_contents('output.txt', file_get_contents('http://google.com'));

接下来,安排 cron 作业:

10 * * * * /usr/bin/php /path/to/my/php/file > /dev/null 2>&1  

...上述脚本将在后台每 10 分钟运行一次。

这是一个很好的 crontab 教程:http://net.tutsplus。 com/tutorials/other/scheduling-tasks-with-cron-jobs/

您还可以使用 cURL 来执行此操作,具体取决于您要使用的请求方法:

$url = 'http://www.example.com/submit.php';
// The submitted form data, encoded as query-string-style
// name-value pairs
$body = 'monkey=uncle&rhino=aunt';
$c = curl_init ($url);
curl_setopt ($c, CURLOPT_POST, true);
curl_setopt ($c, CURLOPT_POSTFIELDS, $body);
curl_setopt ($c, CURLOPT_RETURNTRANSFER, true);
$page = curl_exec ($c);
curl_close ($c);

A cron job is just a task that get's executed in the background at regular pre-set intervals.

You can pretty much write the actual code for the job in any language - it could even be a simple php script or a bash script.

PHP Example:

#!/usr/bin/php -q
<?php 

file_put_contents('output.txt', file_get_contents('http://google.com'));

Next, schedule the cron job:

10 * * * * /usr/bin/php /path/to/my/php/file > /dev/null 2>&1  

... the above script will run every 10 minutes in the background.

Here's a good crontab tutorial: http://net.tutsplus.com/tutorials/other/scheduling-tasks-with-cron-jobs/

You can also use cURL to do this depending on what request method you want to use:

$url = 'http://www.example.com/submit.php';
// The submitted form data, encoded as query-string-style
// name-value pairs
$body = 'monkey=uncle&rhino=aunt';
$c = curl_init ($url);
curl_setopt ($c, CURLOPT_POST, true);
curl_setopt ($c, CURLOPT_POSTFIELDS, $body);
curl_setopt ($c, CURLOPT_RETURNTRANSFER, true);
$page = curl_exec ($c);
curl_close ($c);
单调的奢华 2024-12-28 23:43:05

您很可能希望以普通(即非特权)用户身份执行此操作,因此假设您以非 root 用户身份登录:

$ echo 'curl -s http://example.com/ > /dev/null' > script.sh
$ chmod +x script.sh
$ crontab -e

添加此条目以每 5 分钟执行一次 http 请求:

*/5 * * * * /path/to/your/script.sh

最好您不希望script.sh 在没有错误时给出任何输出,因此 > /dev/null。否则 cron 将每 5 分钟通过电子邮件将输出发送给(很可能是 root)。

这应该足以让您开始。此时,如果您花一些时间来了解一些有关 cron 的知识,那就太好了。阅读适当的 cron 手册页会很好:

从驱动 cron 作业的格式开始:

$ man 5 crontab

然后阅读实际的守护进程:

$ man cron

一般建议:养成阅读遇到的任何新 unix 工具的手册页的习惯,不要立即复制和粘贴命令行片段,而是花一些时间阅读开关的作用。

Most probably you want do do this as a normal (i.e. non-privileged) user, so assuming that you are logged in as non-root user:

$ echo 'curl -s http://example.com/ > /dev/null' > script.sh
$ chmod +x script.sh
$ crontab -e

Add this entry to do the http request once every 5 minutes:

*/5 * * * * /path/to/your/script.sh

Preferably you don't want script.sh to give any output when there is no error, hence the > /dev/null. Otherwise cron will email the output to (most likely root) every 5 minutes.

That should be enough to get you started. At this point it's good if you invest some time to learn a bit about cron. You'll do well bu reading the appropriate man page for cron:

Start with the format for driving the cron jobs:

$ man 5 crontab

Then with the actual daemon:

$ man cron

General advice: make it a habit of reading the man page of any new unix tools that you encounter, instead of immediately copying and pasting command line snippets, spend some time reading what the switches do.

第几種人 2024-12-28 23:43:05

为什么不能使用wget。这是另一个教程

Why can't you use wget. Here is another tutorial.

姜生凉生 2024-12-28 23:43:05

如果您使用linux

crontab -e

添加curl命令

10 15 * * * /usr/bin/curl --silent http://test.com?some=crontab &>/dev/null

并每天10:15 ,您将发送html GET请求到 http://test.com参数 "some" 和值 "crontab"

if you use linux

crontab -e

and add curl command

10 15 * * * /usr/bin/curl --silent http://test.com?some=crontab &>/dev/null

every day 10:15 you will send html GET request to http://test.com with param "some" and value "crontab"

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文