Я настроил задания crontab на выполнение каждую минуту.
* * * * * sudo /usr/bin/php /root/scrapers/terra_plf/terra_swap_api.php
Я вижу его журнал в файле var/log/syslog:
Jan 3 15:14:01 clearthefog CRON[26579]: (root) CMD (/usr/bin/php /home/admin/scrapers/terra_plf/terra_swap_api.php)
Jan 3 15:15:01 clearthefog CRON[26623]: (root) CMD (sudo /usr/bin/php /root/scrapers/terra_plf/terra_swap_api.php)
Еще,ничего не записано в БДкак и должен делать файл terra_swap_api.php
. Есть предложения почему? Есть способ проверить, действительно ли файл выполняется?
Когда я запускаю тот же скрипт в CLI, он работает отлично: php terra_swap_api.php
решение1
Вы не можете просто sudo в cron, так как он запросит пароль sudo. Вам придется настроить sudo без пароля для этой команды.
Поскольку файл php находится в каталоге /root (обратите внимание, что это проблема безопасности), вы можете установить crontab как пользователь root ( sudo crontab -e
) и поместить туда строку (без sudo).
Если ваш скрипт не требует прав root, вы можете запустить его без sudo, но вам придется переместить файлы в доступное для чтения место, поскольку /root принадлежит пользователю root и имеет к нему доступ только он.