He configurado tareas crontab para que se ejecuten cada minuto.
* * * * * sudo /usr/bin/php /root/scrapers/terra_plf/terra_swap_api.php
Veo su registro en el archivo 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)
Todavía,no hay nada escrito en la base de datosterra_swap_api.php
como debería hacerlo el archivo . ¿Alguna sugerencia por qué? ¿Alguna forma de comprobar si el archivo realmente se ejecuta?
Cuando ejecuto el mismo script en CLI, funciona perfectamente: php terra_swap_api.php
Respuesta1
No puedes simplemente sudo en cron, ya que te pedirá la contraseña de sudo. Tendrías que configurar sudo sin contraseña para ese comando.
Dado que el archivo php está en el directorio /root (tenga en cuenta que es un problema de seguridad), puede instalar el crontab como root ( sudo crontab -e
) y colocar la línea allí (sin sudo).
Si su script no requiere privilegios de root, puede ejecutarlo sin sudo, pero tendrá que mover los archivos a una ubicación legible, ya que /root es propiedad del usuario root y está restringido al mismo.