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<?php
echo "guardando archivo\n";
if($escribir !== false){
echo "ok";
}
echo "\n\rfin\n";
?>
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 original16:56:02
16:57:02
16:58:02
16:59:02
17:00:02
17:01:02
17:02:02
17:03:02
17:04:02
17:05:02
17:06:02
17:07:02
17:08:02
17:09:02
17:10:02
17:11:02
17:12:02
17:13:02
17:14:02
17:15:02
17:16:02
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