¿Cómo ejecutar un archivo php con crontab?

2

Tengo la configuración de ubuntu con lámpara y me preguntaba qué escribiría para comenzar una página de php a las 2 am todos los días. Todavía estoy estudiando cómo funciona crontab, así que no puedo probar para ver cuál funciona.

Entonces, si tengo algo como esto, ¿cómo pondría en la página php con parámetros?

30 18 * * * http://myip/mypage.php?action=do_something

¿Entraría así o con un camino absoluto? Me gusta esto

30 18 * * * /var/www/mypage.php?action=do_something
Sarmen B.
fuente

Respuestas:

1

Definitivamente quieres usar el método uno. Es decir

30 18 * * * wget -O - -q -t http://myip/mypage.php?action=do_something

Como esto hará que el archivo se obtenga con wget (un programa de descarga de archivos) a través de la ruta web habitual. Esto significa que cuando apache maneja la solicitud, hará que php interprete ese script y que usted haya ejecutado el script.

Estoy bastante seguro de que también es posible ejecutar esto utilizando el método 2, llamando a la aplicación php-cli y pasando la ruta a su script como argumento, pero en la mayoría de los casos eso no haría ninguna diferencia real.

Varun Madiath
fuente
0

El comando que coloque en su cron depende de cómo se escriba realmente el archivo php. Si el archivo es una secuencia de comandos en un servidor web, wget como se mencionó funcionará bien. Observe que con el comando arriba de -O significa que la salida se escribirá en el archivo, -q es silencioso, -t es para limitar el número de reintentos.

Sin embargo, si el script php es un script de shell, wget es inútil. En ese caso, el archivo debe ser ejecutable y su comando cron se vería así:

30 18 * * * /usr/bin/env php /path/to/script
Ketema
fuente