/ / ¿Cómo ejecutar automáticamente los crons? - bash, cron, centos

¿Cómo ejecutar automáticamente crons? - bash, cron, centos

Estoy tratando de que un archivo sea ejecutado automáticamente por crontab, contenidos como estos:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

*/5 * * * * php /path/to/script

He puesto este archivo llamado prod.cron en el /etc/cron.d carpeta, pero no puede "t conseguir que se ejecute en ella" spropio. Ejecutar el script directamente a través de la línea de comandos muestra que funciona bien, pero ¿no está seguro si los archivos en cron.d se detectan automáticamente o debo hacer algo más para iniciarlos?

Respuestas

0 para la respuesta № 1

Nota ese directorio /etc/cron.d está destinado a ser utilizado por paquetes, crontabs debe instalarse en un usuario crontab. Dicho esto, echa un vistazo a lo siguiente Problemas Cron:

  1. El script no tiene permisos de ejecución. Utilice chmod a + x para proporcionar permisos.
  2. En el caso de PHP, Perl u otros scripting.El lenguaje, el camino al interpretador o al programa no es correcto. Proporcionar siempre el camino real a El interpretador mientras define el comando para ejecutarse en cron. Descubrir donde se encuentra el programa, use el comando whereis. Por ejemplo para php, donde esta php. para perl, whereis php, etc.
  3. Las variables de entorno requeridas para ejecutar elscript no está disponible. El cron no usa el mismo entorno de un usuario. Es utiliza su propio entorno mientras ejecuta los comandos. Entonces las variables definidos en .login o .profile no son visibles para él. Los más comunes El problema está relacionado con la variable PATH que no es similar.

0 para la respuesta № 2

Hay dos tipos de archivo cron.

Archivos instalados bajo /etc/cron.d son sistema archivos cron. Requieren que el sexto campo en cada línea sea la cuenta de usuario utilizada para ejecutar el comando. Ver otros archivos en /etc/cron.d por ejemplo.

Los archivos cron que no son del sistema solo tienen los 5 campos habituales para especificar cuándo se ejecuta el trabajo, seguido del comando para ejecutar. Ellos son instalados por el crontab comando, ejecutado por la cuenta de usuario que ejecutará el comando (s). Esto es probablemente ¿Qué quieres usar?

O bien añadir root como el sexto campo de la línea correspondiente, o ejecutar crontab prod.cron como root (o como cualquier cuenta debe ejecutar el comando).

Y, por supuesto, asegúrese de que el php comando está en el especificado $PATH.