【问题标题】:How to call a specific url at a specific hour with Cron?如何使用 Cron 在特定时间调用特定 URL?
【发布时间】:2013-04-09 02:27:28
【问题描述】:

我需要一个功能,用户只需单击一个按钮即可触发该功能。这会将作业设置为在指定时间(例如上午 9 点)执行,并最终会定期重复。那将由 PHP 处理

所以我考虑过将 CronJobs 与 PHP 一起使用。我已经关注了这个pretty good tutorial,但我真的不知道如何创建触发文件(home/path/to/command/the_command.sh)。

谁能给我建议?

编辑: 事实上,如果用户在某个管理网站上按下按钮,我想做的是调用一个 url,假设是上午 9 点的 www.google.com。工作的管理部分将由我链接的 tut 页面上设置的系统处理。我想知道当作者说时这个php脚本调用的文件应该是什么:

$crontab->append_cronjob('30 8 * * 6 home/path/to/command/the_command.sh >/dev/null 2>&1');

我应该在 the_command.sh 中添加什么来调用 url ?

我不希望在任何类型的浏览器中打开此网址。这个url基本会触发服务端的一个功能。

【问题讨论】:

    标签: php cron crontab cron-task


    【解决方案1】:

    有 3 种可能性

    1) 每次有任务时在 crontab 中添加一行。这是个坏主意

    2) 添加到 crontab 中:

    * * * * *  /usr/bin/php /path_to_your_script/script.php
    

    并检查脚本当前时间/触发该时间的所有操作。也很糟糕,但比 1 更好

    3)创建将执行您的任务的守护程序。例如,每隔一小时启动一次,并在下一小时等待安排的事件,每分钟检查一次。

    如果您只需要从 bash 调用 url,请使用以下内容:

    /usr/bin/curl http://www.google.com >/dev/null 2>/dev/null
    

    【讨论】:

    • 谢谢,我的问题可能不够精确,请参阅编辑:)
    • 什么是 >/dev/null 2>/dev/null ?抱歉,我对 cammand 行很陌生
    • 将输出和错误重定向到 /dev/null(ignore)。否则 crontab 将通过电子邮件向您发送输出和/或错误。
    【解决方案2】:

    如果您想在上午 9 点运行 PHP 脚本,那么您在 crontab 文件中的命令应该类似于:

    /usr/bin/php /var/www/mysite/script.php
    

    其中/usr/bin/php 是您的PHP 可执行文件的路径,/var/www/mysite/script.php 是您要执行的PHP 脚本的路径。首先在终端中运行此命令以确保其正常工作。

    这适用于任何命令。您应该替换 home/path/to/command/the_command.sh 为您要执行的命令,不要按字面意思使用该命令。这是一个将在http://www.google.com/ 处检索页面的命令:

    /usr/bin/curl http://www.google.com/
    

    【讨论】:

    • 谢谢,我的问题可能不够精确,请参阅编辑:)
    • 谢谢大佬,我试试。与我在网上某处出于相同目的找到的 wget 有什么区别?
    • 它们非常相似。默认情况下,wget 将其输出保存到您可能不想要的文件中。
    猜你喜欢
    • 2022-11-10
    • 1970-01-01
    • 2021-09-30
    • 2017-08-26
    • 2019-06-21
    • 1970-01-01
    • 2019-05-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多