2011-02-27 4 views

Respuesta

11

Esto agregará un script que se ejecuta todos los días a las 9:30 a.m.

exec('echo -e "`crontab -l`\n30 9 * * * /path/to/script" | crontab -'); 

Usted puede tener problemas con los permisos si está ejecutando este script desde un servidor web. Para evitar esto, sugeriría un enfoque diferente.

Aquí hay una posible solución. Crea una lista de scripts que necesitan ejecutarse. Puede guardar esto en un archivo de texto o en una base de datos. Cree un script para leer esta lista y ejecútela cada minuto o cada 5 minutos (usando un cronjob). Su script deberá ser lo suficientemente inteligente como para decidir cuándo ejecutar la lista de scripts y cuándo simplemente salir.

0

No puede establecer un trabajo CRON a través del script PHP, debe configurarlo en el lado del servidor. A menos que desee hacerlo a través de la función system, no puede establecer un CRON a través de php.

Si no está ejecutando en su propio servidor y utiliza el servicio de alojamiento, pregunte a su proveedor de hosting cómo configurar un script CRON (si el proveedor lo permite).

+4

En general, los scripts PHP se ejecutan en un servidor ... –

+0

@Marc B, sí, pero normalmente es el servidor el que se encarga de los scripts CRON, no de php _itself_. Tal vez no me expliqué lo suficientemente claro. – Czechnology

2

¿Sabes cómo configurar un trabajo cron normalmente? (fuera de PHP, es decir, desde un script bash o la línea de comando).

Si es así, solo necesita usar la función php exec para emitir los mismos comandos que tendría que crear el trabajo cron en la línea de comando. Una advertencia es que puede haber problemas de permisos y debe tener mucho cuidado con lo que pone en esa función ejecutiva (no quiere pasar la entrada del usuario final a esa función).

Cuestiones relacionadas