【问题标题】:Schedule and execute a PHP script automatically自动安排和执行 PHP 脚本
【发布时间】:2011-02-15 09:09:31
【问题描述】:

我编写了一个 PHP 脚本,它生成一个包含我数据库中所有表的 SQL 文件。 我想要做的是每天或每 n 天执行一次这个脚本。我已阅读有关 cron 作业的信息,但我使用的是 Windows。如何在服务器上自动执行脚本?

【问题讨论】:

    标签: php windows automation scheduled-tasks scheduling


    【解决方案1】:

    您需要添加计划任务来调用 URL。

    首先,在这里阅读: MS KB - 适用于 Windows XP。

    其次,你需要一些方法来调用 URL - 我建议使用类似 wget - 这样你可以调用 URL 并将输出保存到文件中,这样你就可以看看调试输出是什么。您可以获取 wget on this page

    最后一步是,正如 Gabriel 所说,编写一个批处理文件来绑定所有这些,然后就可以走了。

    e:wget 使用起来非常简单,但是如果您有任何问题,请发表评论,我会提供帮助。

    ee:想想看,你甚至不需要批处理文件,直接调用 wget 就可以了..

    【讨论】:

    • @danp:您好!非常感谢您提供的链接。我有一个关于第一个链接的问题,如果我的应用程序正在服务器上运行,我该如何添加计划任务?
    • 这里有两件事情——第一件是服务器,第二件是你在服务器上调用脚本的地方from。调用脚本的地方可以是任何地方,它可以在同一台机器上,也可以在不同的远程机器上。想象一下,您在 www.mybox.com/dailyscript.php 上有脚本 - 在您的办公室或家用机器上,您添加了一个计划任务,该任务使用 wget(或其他)调用该脚本,基本上,它应该“正常工作”。
    • 添加计划任务时,我需要指定将发生的操作及其详细信息。我选择了:启动一个程序和localhost/final/myscript.php。对吗?
    • 它可能会起作用,但如果你将其更改为“wget localhost/final/myscript.php”,那么肯定会没事的。为它获取的文件设置一个目标,这应该完成。
    • 如果你执行“wget localhost/final/myscript.php”?
    【解决方案2】:

    添加计划任务以请求 url。使用批处理文件或脚本文件 (WSH)。

    http://blog.netnerds.net/2007/01/vbscript-download-and-save-a-binary-file/

    此脚本将允许您从 Web 源下载二进制数据。修改它以适合您的特定情况。此 vbs 文件可以直接运行,也可以从脚本中执行。或者,您不必使用脚本保存文件,您只需输出内容(WScript.Echo objXMLHTTP.ResponseBody)并利用 CMD 输出到文件参数:

    cscript download.vbs > 日志文件.log

    将那个坏男孩保存在一个有用的 .bat 文件中,并在调度程序中调用它:http://lifehacker.com/153089/hack-attack-using-windows-scheduled-tasks

    【讨论】:

    • 你能给我一些链接吗?
    • @Gabriel:谢谢你的链接
    【解决方案3】:

    Cron 并非总是在许多托管帐户上可用。

    但是试试这个: http://www.phpjobscheduler.co.uk/ 它是免费的,有一个有用的界面,所以你可以看到所有的计划任务,并且可以在任何提供 php 和 mysql 的主机上运行。

    【讨论】:

      【解决方案4】:

      您可以使用ATrigger 调度服务。 PHP library 也可用于创建计划任务而无需开销。报告、分析、错误处理和更多好处。

      免责声明:我是 ATrigger 团队的一员。这是一个免费软件,我没有任何商业目的。

      【讨论】:

        【解决方案5】:

        Windows 没有 cron,但它带有 'at' 命令。它不像 cron 那样灵活,但它允许您安排任意任务以从命令行执行。

        【讨论】:

          【解决方案6】:

          是的,您可以在 Windows 上安排和执行您的 php 脚本以自动运行。在像 os 这样的 linux 中,您将拥有 cron,但在 Windows 上,您可以使用任务调度程序来安排任务。

          【讨论】:

            【解决方案7】:

            如果您的代码位于远程托管服务器中,请为其创建一个 cron 作业。 否则,如果在本地,则在 windows 中使用计划任务。它很容易实现。我的服务器运行着这么多计划任务。

            【讨论】:

              猜你喜欢
              • 2013-03-23
              • 2012-11-14
              • 1970-01-01
              • 2013-03-12
              • 2012-07-23
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多