
Tengo configuración de Ubuntu con lámpara y me preguntaba qué escribiría para iniciar una página PHP, por ejemplo, a las 2 a. m. todos los días. Todavía estoy estudiando cómo funciona crontab, así que no puedo probar cuál funciona.
Entonces, si tengo algo como esto, ¿cómo lo colocaría en la página PHP con parámetros?
30 18 * * * http://myip/mypage.php?action=do_something
¿Entraría así o con ruta absoluta? Como esto
30 18 * * * /var/www/mypage.php?action=do_something
Respuesta1
Definitivamente quieres usar el método uno. Eso es
30 18 * * * wget -O - -q -t http://myip/mypage.php?action=do_something
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 usted habrá ejecutado el script.
Estoy bastante seguro de que también es posible ejecutar esto usando 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.
Respuesta2
El comando que coloques en tu cron depende de cómo esté escrito realmente el archivo php. Si el archivo es un script en un servidor web, entonces wget, como se mencionó, funcionará bien. Observe que con el comando anterior -O significa que la salida se escribirá en un 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 tiene que ser ejecutable y su comando cron se vería así:
30 18 * * * /usr/bin/env php /path/to/script