Foros del Web » Programando para Internet » PHP »

cronjob shell php en windows 7

Estas en el tema de cronjob shell php en windows 7 en el foro de PHP en Foros del Web. Hola necesito saber si se puede , ejecutar un cronojob php desde el shell de windows 7. yo busque y encontre esto: http://paterico.com/windows-cron.html pero sirve ...
  #1 (permalink)  
Antiguo 20/03/2012, 10:36
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Pregunta cronjob shell php en windows 7

Hola necesito saber si se puede, ejecutar un cronojob php desde el shell de windows 7.
yo busque y encontre esto: http://paterico.com/windows-cron.html
pero sirve solo para abrir un navegador y pasarle los parametros para que ejecute el <cron>.php que yo deseo.
  #2 (permalink)  
Antiguo 20/03/2012, 10:41
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 9 meses
Puntos: 194
Respuesta: cronjob shell php en windows 7

una solucion simple, es crear un archivo.bat que ejecute tu php. Luego con las tareas programadas de windwos 7 llamas a ese bat y problema resuelto
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #3 (permalink)  
Antiguo 20/03/2012, 10:53
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: cronjob shell php en windows 7

tenes un ejemplo para eso?
tengo entendido que el cron que se ejecuta en un php que tiene otra configuracion, esto es asi?
  #4 (permalink)  
Antiguo 20/03/2012, 11:08
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 9 meses
Puntos: 194
Respuesta: cronjob shell php en windows 7

primero que nada, cuando hablamos de cron estamos hablando de linux. PHP no tiene un cron propio.

Un ejemplo podría ser

C:\apache\www\hola.php
----
Código PHP:
Ver original
  1. <?php
  2. echo "hola mundo";
  3. ?>

nombre.bat
----
Código Shell:
Ver original
  1. C:\php\php -f C:\apache\www\hola.php

Luego te vas al panel de control, tareas programadas y agregas una tarea para ejecutar "nombre.bat" cuando veas necesario. Y listo.
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #5 (permalink)  
Antiguo 20/03/2012, 11:25
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: cronjob shell php en windows 7

perfecto gracias H2,
y gracias por aclarame las dudas pero necesitaba precision
  #6 (permalink)  
Antiguo 20/03/2012, 11:28
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 9 meses
Puntos: 194
Respuesta: cronjob shell php en windows 7

No se que nivel de precisión buscas, el método que te explico tiene un error de mili segundos. Es casi tan preciso como un cronjob. La única diferencia es la interfaz horrenda que nos da Windows para sus tareas programadas. Si encuentras alguna mejor manera , no dudes en compartirla, seria bastante interesante.

Saludos!
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #7 (permalink)  
Antiguo 20/03/2012, 11:35
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: cronjob shell php en windows 7

Otra alternativa es instalar algun servicio que emule cron de unix en windows, hay varios, pero no los probé en win 7

http://www.kalab.com/freeware/pycron/pycron.htm
http://www.kalab.com/freeware/cron/cron.htm

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #8 (permalink)  
Antiguo 20/03/2012, 12:23
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: cronjob shell php en windows 7

Cita:
Iniciado por h2swider Ver Mensaje
No se que nivel de precisión buscas, el método que te explico tiene un error de mili segundos. Es casi tan preciso como un cronjob. La única diferencia es la interfaz horrenda que nos da Windows para sus tareas programadas. Si encuentras alguna mejor manera , no dudes en compartirla, seria bastante interesante.

Saludos!
oh! disculpa quise decir que buscaba mas precision, que es justo lo que buscaba en tu repuesta anterior y gracias por el dato de los milisegundos.
  #9 (permalink)  
Antiguo 20/03/2012, 12:23
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: cronjob shell php en windows 7

Cita:
Iniciado por emprear Ver Mensaje
Otra alternativa es instalar algun servicio que emule cron de unix en windows, hay varios, pero no los probé en win 7

http://www.kalab.com/freeware/pycron/pycron.htm
http://www.kalab.com/freeware/cron/cron.htm

Saludos
gracias por el aporte, los voy a estar probando en estos dias y les cuento
  #10 (permalink)  
Antiguo 20/03/2012, 14:48
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: cronjob shell php en windows 7

Bueno, como me quedé con la duda, además de comprobar que los comandos AT funcionan cuando quieren y que el programador de tareas es un fiasco, llegué hasta esto

Descargar el nncronlt117.exe desde http://www.nncron.ru/download.shtml , hay otra versión que no es lite, que creo incluye una interfaz gráfica, pruebenla si quieren

En windows 7 y como administrador instalan el programa, este instala e inicia el servicio "cron"
Ahora solo resta editar el archivo cron.tab que esta en la carpeta de instalación por defecto --> C:\Program Files (x86) con el editor de texto. Ese Archivo usa la misma sintáxis que en unix (en el archivo de ayuda hay una muy buena referencia y ejemplos)

Hasta acá funciona perfecto, con ejecutables ú aplicaciones (notepad.exe, etc)
Pero el php tiene un par de vueltas (que no están relacionadas con el cron en si, sino más bien son propias de php)
A continuación dejo el ejemplo con el que trabaje

Tengo instalado php en i:\xampp\php, ahi mismo está mi php.ini, y esa carpeta está en el path de windows.

La linea de comandos para la ejecución me quedó
php -f i:\hora-cron.php
y como quiero que se ejecute cada minuto, mi cron.tab queda asi

#CRONTAB FILE
# Classic crontab format:
*/1 * * * * php -f i:\hora-cron.php


el contenido de hora-cron.php es

Código PHP:
Ver original
  1. <?php
  2. echo "guardando archivo\n";
  3. $hora = date('H:i:s');
  4. $escribir = file_put_contents('i:\hora-cron.txt',"$hora\n",FILE_APPEND);
  5. if($escribir !== false){
  6. echo "ok";
  7. }
  8. echo "\n\rfin\n";
  9. sleep(5);
  10. ?>
hay una condición y un sleep, simplemente para verificar el funcionamiento...
El resultado es un archivo hora-cron.txt con este contenido

Código txt:
Ver original
  1. 16:56:02
  2. 16:57:02
  3. 16:58:02
  4. 16:59:02
  5. 17:00:02
  6. 17:01:02
  7. 17:02:02
  8. 17:03:02
  9. 17:04:02
  10. 17:05:02
  11. 17:06:02
  12. 17:07:02
  13. 17:08:02
  14. 17:09:02
  15. 17:10:02
  16. 17:11:02
  17. 17:12:02
  18. 17:13:02
  19. 17:14:02
  20. 17:15:02
  21. 17:16:02
  22. 17:17:02

Pero porque dije que con php tiene sus vueltas? Explico:
Cuando inicié las pruebas habia creado un archivo hora-cron.cmd(bat) con
@echo off
php -f i:\hora-cron.php
pause
´
como se observa es el mismo comando que le paso en el cron.tab más arriba
y mi hora-cron.php tenía esto
<?php
echo "guardando archivo\n";
$hora = date('H:i:s');
$escribir = file_put_contents('hora-cron.txt',"$hora\n",FILE_APPEND);
if($escribir !== false){
echo "ok";
}
echo "\n\rfin\n";
?>
Si le hacia doble click en el explorador, me escribia el hora-cron.txt y funcionaba perfecto, entonces en mi cron.tab puse

#CRONTAB FILE
# Classic crontab format:
*/1 * * * * i:\hora-cron.cmd


El cron lo ejecutaba, el php se ejecutaba, se observava el "guardando archivo", no había advertencias ni errores... pero el hora-cron.txt NO SE ESCRIBIA.
La solución, si comparan con lo que funcionaba al principio, fue dar la ruta completa, al archivo hora-cron.txt dentro de file_put_contents();. El porque de esto, no estoy muy seguro. Por lo tanto aconsejo usar rutas completas para todo tipo de archivo.
Demás está decir que lo que se pueda o no se pueda hacer desde la linea de comandos con php, es otra historia.

Conclusión, el nnCron Lite, es una buena alternativa, y consume muy pocos recursos.

Si alguno experimenta con la versión completa, sería bueno que deje sus evaluaciones.
Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #11 (permalink)  
Antiguo 20/03/2012, 18:34
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: cronjob shell php en windows 7

muy buen ejemplo emprear! ya me pongo a verlo!
igual quisiera aclarar es necesito hacer pruebas de cron window 7 para mi localhost,
luego cuando suba el sistema a online, el hosting deberia permitir ejecutar los archivos cron sin problemas, ya que deberia ser linux.
  #12 (permalink)  
Antiguo 20/03/2012, 19:03
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: cronjob shell php en windows 7

Hasta donde vi, el formato y sintáxis para cron.tab es el mismo.
Todos los hosts que uso son servidores compartidos, y si necesito programas tareas lo hago a través del Cpanel.
Mientras vas practicando, te dejo para que leas un artículo que parece bien hecho y tiene código usable.
http://net.tutsplus.com/tutorials/ph...bs-with-php-2/

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Etiquetas: cronjob, html, shell, windows
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:45.