Я новичок в разработке ie и возился с Symfony и AWS. У меня есть приложение Symfony, развернутое через beanstalk elasti c, и я каждую минуту пытаюсь добавить задание cron.
В основном я хочу, чтобы задание cron выполняло созданную мной команду Symfony: update-pings
, которая должна обновлять некоторые поля в моей базе данных RDS.
Я использую 02 -crons.config в моем каталоге ./ebextensions, который выглядит следующим образом (в значительной степени вдохновлен AWS документацией https://aws.amazon.com/fr/premiumsupport/knowledge-center/cron-job-elastic-beanstalk/):
files:
"/etc/cron.d/mycron":
mode: "000644"
owner: root
group: root
content: |
* * * * * root php /var/app/current/bin/console app:update-pings
commands:
remove_old_cron:
command: "rm -f /etc/cron.d/mycron.bak"
Ну, во-первых, это не работает, поля в БД не обновляются. Итак, я подключился в S SH к своему экземпляру EC2, чтобы посмотреть, что происходит.
Файл mycron
в /etc/cron.d/
был правильно создан с * * * * * root php /var/app/current/bin/console app:update-pings
внутри
Теперь я попытался заменить содержимое этого файла простым * * * * * root echo test >> /tmp/cron_temp
, это работает отлично, строка с 'test' добавляется в мой cron_temp
файл каждую минуту
Я пробовал запустить начальную команду php /var/app/current/bin/console app:update-pings
вручную на экземпляре, отлично работает как ec2-user
Когда я переключаюсь на пользователя root с помощью sudo su -
, команда все еще работает. Но когда я пытаюсь запустить его с помощью sudo
, он терпит неудачу, не уверен, что это имеет какое-то отношение:
In EnvVarProcessor.php line 171:
Environment variable not found: "DATABASE_DBNAME".
Я считаю, что мне чего-то не хватает с linux пользователями / правами, но я Я новичок ie с этим и не могу найти, что происходит
Есть идеи? Заранее большое спасибо ! :)
Редактировать 1: я знаю, что записываю в файл стерр команды в файл, и я получаю ту же ошибку переменной среды, что и при попытке запустить команду вручную с помощью sudo
In EnvVarProcessor.php line 171:
Environment variable not found: "DATABASE_DBNAME".
Команда отлично работает без sudo, хотя