14

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

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

4

2 回答 2

22

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

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

  1. 通过登录到您的 lightsail 帐户并单击“使用 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 > /tmp/env.output并查看文件。第 2 行是 cron 计划。星号表示:每小时、每天、每月、每年的每一分钟都执行此操作。在 Google 上搜索这个 :) 并将输出到一个名为Out.put.

  5. 等待 1 分钟,看到它Out.put已经被创建并包含了Hello World的魔法词

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

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

于 2017-10-21T22:14:13.823 回答
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/查找时间设置

于 2019-01-31T00:24:53.597 回答