Можно ли запустить cron на экземпляре Amazon lightsail?

Я хотел бы настроить периодические задания на экземпляре Amazon Lightsail, но не могу найти информацию о нем — только для Amazon EC2.

Можно ли выдавать задания cron на экземпляре lightsail или мне нужно перейти на EC2?

5

Решение

Чтобы ответить на мой собственный вопрос, всего через 8 часов: На экземплярах Amazon Lightsail можно выдавать задания cron

Вот рабочий пример запуска скрипта PHP:

  1. Подключитесь к вашему экземпляру Lightsail либо войдите в свою учетную запись lightsail и нажмите «Подключиться с помощью SSH» или с помощью клиента SSH, например, PuTTY.
  2. Создайте папку с именем «projects» в / home / bitnami / и создайте простой файл .php с именем Hello World:

    <?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 и нажмите enter в консоли). Чтобы увидеть, какие переменные env переданы в cron, замените строку 2 на: * * * * * env > /tmp/env.output и посмотрите в файл. Линия 2 это расписание cron. Звездочки означают: Делайте это каждую минуту каждого часа, дня, месяца, года. Ищите Google для этого 🙂 И выведет в файл с именем Out.put,

  5. Подождите 1 минуту и ​​увидите, что Out.put был создан и содержит волшебные слова Привет, мир

Если у вас возникли проблемы с неработающими заданиями cron, ознакомьтесь с этим руководством по устранению неполадок: https://stackoverflow.com/tags/cron/info

Надеюсь это поможет. Если это не так, оставьте комментарий, прежде чем голосовать!

9

Другие решения

Если вы используете 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:00 каждый день с этим параметром.

Чтобы проверить это, вы можете использовать

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

в вашем crontab. Это должно создать myfile.txt в вашей целевой папке через минуту. Если это не так, вам нужно изменить настройки пути. Существует также разница между

sudo crontab -e
crontab -e

Найти настройки времени на https://crontab.guru/

0