2012-07-23 13 views
7

soy nuevo en el trabajo de cron. Estudié algunos conceptos básicos sobre el trabajo cron. Puedo llamar a php usando la pestaña cron. Mediante el uso de comando siguiente en/etc/crontabcómo configurar el trabajo cron desde el script php?

10 * * * * root /usr/bin/php /var/www/PATH TO SCRIPT/email.php 

En email.php he siguiente código

#!/usr/bin/php 
<?php 
    mail ("[email protected]", "Cron Successful Public HTML!","Hello World from mycron.php!"); 
?> 

Por cada 10 minutos que estoy recibiendo correo. Pero necesito saber si hay alguna forma de llamar a cron job desde php (invocar cron desde php) tengo alguna idea navegando pero no soy capaz de encontrar la manera exacta de hacer mi trabajo. Aquí está el código que he usado para agregar trabajo utilizando php

exec('echo -e "crontab -e \n2 * * * * /usr/bin/php /var/www/PATH TO THE SCRIPT/crontest1.php" '); 

no su trabajo para mí. ¿Alguien puede por favor guiarme cómo llamar o agregar cron de php. Así que puedo enviar correos electrónicos ejecutando el archivo php & capaz de cambiar el intervalo de tiempo en el archivo php mismo.

Respuesta

8

De How can I set cron job through PHP script por Nick Clark:

Esto añadirá un guión que funciona todos los días a las 9:30 am.

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

Puede tener problemas con los permisos si ejecuta 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.

Puede hacer como esto ..

Otros enlaces:

Install a cron job with a php script

How to invoke cron job from php script?

+0

intenté esto, solo quiero saber después de esto tengo que ejecutar mi archivo php en el navegador? Realmente no tengo idea de cómo se ejecutará el cron. puede por favor explicarlo :( – suganya

+0

gracias ... eso es realmente muy buena idea ... +1 –

1

Usted debe ser capaz de añadir directamente

echo "2 * * * * /usr/bin/php /var/www/PATH TO THE SCRIPT/crontest1.php\n" > /etc/cron.d/username 
+0

El OP específicamente preguntó cómo hacer esto desde PHP –

+0

@MichaelMior Ponga un 'exec()' a su alrededor ... Cuando miro en la pregunta, parece, que él lo entiende. – KingCrunch

0

Muchos entornos no permiten escribir en un archivo de texto desde una página php llamada desde la web. Estoy de acuerdo en que este es un riesgo de seguridad que no se debe tomar.

Tengo una página web para guardar datos en una tabla MySQL a través de una llamada JQuery a un script php. En Cron, programo otro script php para que, de vez en cuando, compruebe los datos en la tabla MySQL y ejecute los trabajos necesarios.

Cuestiones relacionadas