【问题标题】:Is it possible to have cron job running on Amazon lightsail instance?是否可以在 Amazon lightail 实例上运行 cron 作业?
【发布时间】:2025-11-27 11:50:02
【问题描述】:

我想在 Amazon Lightsail 实例上设置定期作业,但找不到任何相关信息 - 仅适用于 Amazon EC2。

是否可以在 lightsail 实例上发布 cron 作业,还是需要更改为 EC2?

【问题讨论】:

    标签: php cron amazon-lightsail


    【解决方案1】:

    8 小时后回答我自己的问题:可以在 Amazon Lightsail 实例上发布 cron 作业

    这是一个运行 PHP 脚本的工作示例:

    1. 通过 logging in to your lightsail account 并单击“使用 SSH 连接”或使用 SSH 客户端(例如 PuTTY)连接到您的 Lightsail 实例。
    2. 在 /home/bitnami/ 中创建一个名为“projects”的文件夹,并创建一个名为 Hello World 的简单 .php 文件:

      <?php print("Hello World"); ?>
      
    3. 使用命令crontab -e 访问一个文档,您可以在其中添加将作为您计划的 cron 作业的行。

    4. 在文档中添加两行并添加新行:

      PATH=/usr/bin:/bin:/opt/bitnami/php/bin:
      * * * * * php -f /home/bitnami/projects/HelloWorld.php > /home/bitnami/projects/Out.put
      

      第 1 行 将 php 添加到 cron 路径(Cron 看到的路径与环境变量中给出的路径不同。键入:env 并在控制台中按回车键)。要查看为 cron 提供了哪些环境变量,请将第 2 行替换为:* * * * * env &gt; /tmp/env.output 并查看文件。 第 2 行 是 cron 计划。星号表示:每小时、每天、每月、每年的每一分钟都执行此操作。在 Google 上搜索这个 :) 并将输出到一个名为 Out.put 的文件。

    5. 等待 1 分钟,看到 Out.put 已创建并包含 Hello World

    6. 的神奇词汇

    如果您遇到 cron 作业无法运行的问题,请查看此故障排除指南:https://*.com/tags/cron/info

    希望这会有所帮助。如果没有,请在投票前发表评论!

    【讨论】:

    • 如果您在 PHP 文件中使用 include 或 require,请确保使用绝对路径。这篇文章解释了 CRON 和相对路径:*.com/questions/1969374/… 我无法得到这个答案,问题不是 CRON 设置,而是我的 PHP 文件。
    • 这在不运行 bitname 而是纯 PHP 的服务器上看起来如何?另外,如果 cronjob 应该在另一台服务器上打开一个站点怎么办?这个可以吗?
    【解决方案2】:

    如果您使用的是 node.js,您可以通过在您的 crontab 中添加几行来做到这一点。首先,打开crontab

    crontab -e
    

    在文件末尾添加这三行。我假设你一直在使用。

    PATH=/usr/bin:/bin:/opt/bitnami/nodejs/bin:
    @reboot cd /home/bitnami/**THISISYOURFOLDER** && /opt/bitnami/nodejs/bin/forever **NAMEOFYOURAPP.JS**
    0 1 * * * sudo reboot
    

    这将在系统重新启动时运行您在 THISISYOURFOLDER 中的应用。此外,我使用此设置将其设置为每天凌晨 1 点重新启动。

    要对此进行测试,您可以使用

    * * * * * cd /home/bitnami/**THISISYOURFOLDER** && touch myfile.txt
    

    在您的 crontab 中。这需要在一分钟后在您的目标文件夹中创建 myfile.txt。如果不是,您需要更改路径设置。也有区别

    sudo crontab -e
    crontab -e
    

    https://crontab.guru/查找时间设置

    【讨论】:

    • 如果你使用node,使用node包来做cron不是更容易吗?