Подтвердить что ты не робот

Как написать работу cron в сервере AWS EC2

Я создал задание cron в AWS EC2, но оно не работает.

Я выполнил следующие шаги, чтобы создать вкладку cron:

  • Шаг 1: я вошел в систему AWS EC2 Instace
  • Шаг 2: crontab -e
  • Шаг 3: Режим вставки
  • Шаг 4: я ввел * * * * * php/var/www/html/welcome.php (для запуска каждый мин.)
  • Шаг 5: :wq

Закладка Cron создана, но не работает.

Пожалуйста, можете ли вы мне помочь, если есть какой-либо PHP script, пожалуйста, предоставьте меня. Нужно ли давать пробелы между каждой звездой?

4b9b3361

Ответ 1

Прежде всего, вам нужно поместить пробел между php и /var:

С

* * * * * php/var/www/html/welcome.php

к

* * * * * php /var/www/html/welcome.php
             ^

Затем вам лучше использовать /bin/php вместо php. Чтобы определить, где находится исполняемый файл php, введите which php в свою консоль, он предоставит вам путь к файлу. Итак, это будет примерно так:

* * * * * /bin/php /var/www/html/welcome.php
          ^^^^^^^^

Другие вещи:

  • проверить, правильно ли сохранен crontab? Введите crontab -l. Ваша новая линия crontab должна быть там.
  • является script точно в этом каталоге? Попробуйте ls -l /var/www/html/welcome.php.
  • выполняется script, если вы используете консоль? Попробуйте /bin/php var/www/html/welcome.php, чтобы узнать, является ли это проблемой script или crontab.
  • имеет ли режим script режим выполнения? Попробуйте chmod 755 /var/www/html/welcome.php

Держите нас в курсе, чтобы мы могли найти причину ошибки.

Ответ 2

Может быть, слишком поздно, но в любом случае, если вы намереваетесь запускать script каждую минуту, вероятно, должна быть команда

* * * * * php /var/www/html/welcome.php

Ответ 3

Запуск cron на EC2 ничем не отличается от работы на любом сервере * nix - насколько я знаю. Я бы проверял системные сообщения на наличие ошибок. Вы также можете перенаправить stderr/stdout в файл, как в

 * * * * * <your script>  >> /var/tmp/out.log 2>&1

и проверьте наличие проблем для стартеров.