Avatar Image
Colega ;)
Colega ;)

La verdad es que lo he llamado asi porque no se como llamaro

Lo que trato de hace es que sin necesidad de yo acceder a una pagina php, se ejecute una funcion a una hora X.

Por poner un ejemplo, yo quiero que una vez a la semana a las 10 de la noche, haya un codigo php que me copie unos datos de la base de datos y me los envie al correo. (Es solo un ejemplo, la cosa es que haga una funcion php que yo le diga)


Me suena que puede ser, igual estoy metiendo la pata hasta el fondo, con cgi-bin. ¿Alguna idea?

Avatar Image
@man / @woman
@man / @woman

Yo tengo algo similar...


Hay dos opciones...
- La normal es hacerlo con cron, que es algo que el servidor tiene que tener y son proceso que se ejecutan a X horas... haces el php normal, y después con cron programas...
- La que yo uso es que me da igual que se haga a las 10:00:00 que a las 10:05:27, así que en todas las páginas meto un pequeño script -junto al contador, por ejemplo- cuando tengo un usuario saco la hora y día que es... y comparo con una que tengo guardada... si se da el caso mando ejecutar una función, sino simplemente actualizo la fecha.
De esta manera, en el script de contadores por ejemplo, cuando entra el primer usuario del día es cuando se ejecuta la función... ese usuario apenas nota nada.

Avatar Image
Colega ;)
Colega ;)

Hombre si es solo el de uno, no se nota. Si lo que trato es una funcion mas global como la copia de una base de datos entera pues seria algo mas pesado... digo yo.

Asi que con cron... me informare. ¿El servidor lo deberia llevar por defecto? ¿Se crearia y colgaria el codigo de manera similar a cualquier otro lenguaje de programacion web?

Si me surgen mas dudas con lo que lea a partir de ahora, pregunto.

Un Saludo y Gracias

Avatar Image
@man / @woman
@man / @woman

Yo lo uso para la base de datos también... depende de lo que te ocupe la base de datos...

Avatar Image
Colega ;)
Colega ;)

Leyendo esto, me ha quedado mas o menos claro como se crear el "codigo" o "proceso". Lo que no me queda claro es como podria hacer yo que mi servidor web hiciera esa ejecucion. En definitiva no se que hacer con el codiguillo.

¿Alguna idea?

Avatar Image
User 390661
@man / @woman
@man / @woman
Escrito originalmente por EffectedCard
Leyendo esto, me ha quedado mas o menos claro como se crear el "codigo" o "proceso". Lo que no me queda claro es como podria hacer yo que mi servidor web hiciera esa ejecucion. En definitiva no se que hacer con el codiguillo.

¿Alguna idea?

Si usas Cpanel, en "Herramientas avanzadas", viene Programador de tareas para ingresar los datos del Crontab
Avatar Image
Colega ;)
Colega ;)

Gracias por la informacion. Sin embargo, los hostings que actualmente tengo no tienen. Aun asi, como la funcion la necesitare en un nuevo sitio web, podre buscarlo con cpanel.

Por otra parte, si alguien sabe algo mas acerca de  cron para hacerlo sin cpanel lo agradeceria

Avatar Image
@man / @woman
@man / @woman
Escrito originalmente por EffectedCard
Gracias por la informacion. Sin embargo, los hostings que actualmente tengo no tienen. Aun asi, como la funcion la necesitare en un nuevo sitio web, podre buscarlo con cpanel.

Por otra parte, si alguien sabe algo mas acerca de  cron para hacerlo sin cpanel lo agradeceria
Puede que no tenga acceso a cron mediante el panel de control, pero quizás si via SSH.

Avatar Image
Colega ;)
Colega ;)

Contactare con el hosting que tengo y pregunto y, en todo caso, cuando vaya a comprar el nuevo, buscare uno que ya sepa de antemano que me va a permitir esto.

Gracias a ambos!

mrtnw2003
Usuario habitual
Usuario habitual

Hola EffectedCard (o Nito como me parece que te llaman ):
También te recomiendo que leas estas páginas web, que te van a dar una mejor idea de como se usa el Crontab y todo lo relacionado a el:
http://www.redhat.com/docs/manuals/linux/RHL-7.2-Manual/custom-guide/cron-task.html
http://www.computerhope.com/unix/ucrontab.htm
En este ultimo enlace tienes las distintas formas de uso del crontab desde la linea de comandos o el shell. O sea que ese enlace te servira si se tiene que configurar desde el SSH.

Recuerda que para usar el SSH necesitas de un software que funcione como cliente. A continuación te doy una lista de algunos que he encontrado en internet:

  • SSH Tectia Client . Se puede encontrar en: http://www.ssh.com/downloads/ . Este lo he probado y es muy bueno. El unico inconveniente que tiene es que es Shareware, por lo cual se puede descargar una version de evaluación de 30 dias (descarga la cual incluye el Server ademas de el cliente) o comprar el programa en su version sin limitaciones.
  • Secure KoalaTerm de FoxIt Software . Se puede encontrar en: http://www.foxitsoftware.com/downloads/ . Este lo he probado y es bastante bueno. El unico inconveniente que tenía la ultima version que me descarge ya hace bastante tiempo, es que en una misma sesion del programa te permitía usarlo un cierto periodo de tiempo y después de ese periodo te desactivaba o deshabilitaba todas las funciones y comandos de esa sesion del programa, por lo cual uno esta forzado a cerrarlo y abrirlo de vuelta. No se como sera la cosa en la ultima version disponible. Este también es Shareware, por lo cual se puede comprar una version sin limitaciones.
  • WinSCP de Martin Prikryl . Se puede encontrar en http://winscp.net/eng/download.php . Este NO lo he probrado . Se trata de un programa OpenSource y por lo tanto también debe ser Freeware.
Ahora, cuando uses un cliente SSH tendras que usar el caso que figura en la primera página web que te deje en la cual esta lo de el minuto, hora, dia del mes, mes, dia de la semana y comando (toda la linea de comando que va a ejecutar el servidor en la respectiva programación), en ese orden. O sea que deberan estar separadas todas esas secciones por un espacio entre ellas cuando comienzes a editar con el comando de shell: crontab -e .

Para que quede claro, lo expresamos de la siguiente manera para que quede clara la sintaxsis que se debe usar en el edtor del Crontab ( comando: crontab -e ):

[Sección Minuto][1espacio][Sección Hora][1espacio][Sección Día del Mes][1espacio][Sección Mes][1espacio][Sección Día de la Semana][1espacio][Sección Comando]

[1espacio] =  

Las 2 imagenes que aparecen a continuación, se basan en la primera de las 2 formas de ejecutar un archivo PHP (forma que vamos a detallar más adelante), con la diferencía de que muestran como aplicar esa forma dentro de la interface basada en páginas web del CPanel.


Si usas un CPanel es sencillo en este caso porque ya ahí todo eso esta separado en distintos cuadros de texto (O sea que minuto va en el primer cuadro de texto, hora en el segundo, dia del mes en el tercero, y así sucesivamente. Si se usa la forma de edición avanzada sera así. En la forma estandar es todavía más facil y para novatos ). Esta imagen muestra justamente, como es la forma de edición advanzada en el CPanel.


En este caso hay que escribir lo de la sección de la linea de comando en donde dice "Command to run:", y seleccionar la opcion que corresponda en las diferentes listas de la imagen. Dentro de cualquiera de esas listas es posible seleccionar multiples opciones dentro de una misma lista. Si presionamos la tecla Control mientras hacemos clic en distintos items de la lista, tenemos la posibilidad de seleccionar y deseleccionar items que no sean adyacentes entre si. Aunque no sea visible en la imagen, en la lista "Hour(s):", las primeras 4 opciones son "Every Hour", "Every Other Hour", "Every Four Hours" y "Every Six Hours". Las distintas opciones que queden seleccionadas en las distintas listas determinan cuando y con que frecuencía se ejecuta nuestra programación. Si queremos hacer una programación más precisa, para, por ejemplo, ejecutar una programación cada 29 minutos, tendremos que usar si o si la forma de edición advanzada.

Hay 2 formas de ejecutar un archivo PHP.
1) De forma interna dentro del mismo servidor. O sea que unicamente el sistema operativo se encarga de ejecutar la tarea y después el PHP hace el resto. O...
2) Hacer que el servidor ejecute la tarea vía internet o intranet .

Aquí va la primera forma:
Codigo
(fijate que he incluido las secciones minuto, hora, dia del mes, mes y dia de la semana. La sección de la linea de comando empieza justo después del espacio que esta después de la sección dia de la semana. En el CPanel la sección de la linea de comando debe ir en el ultimo cuadro de texto, o sea el más ancho)
El parametro -q que se pasa al php , es para hacer que este se ejecute en el modo cliente y no en el modo CGI . O sea que con ese parametro se evita que se devuelvan los encabezados HTTP. Ademas de ser para eso, hay otros detalles tecnicos que no voy a poner en este tema, para no extenderme demasiado.
El comando cd que viene antes del (punto y coma) y php , es para preparar el directorío de trabajo antes de llamar al PHP. El programa interpretador del PHP va a buscar tu fichero *.php en el directorío de trabajo que tu quieras especificar. Por eso el comando cd primero y el php después.
Nota: Si puedes EffectedCard . Yo te recomendaría que uses esta forma para implementar tu cron (o programación). Si este ejemplo te dío problemas proba con el siguiente. Este ejemplo se usa cuando el PHP esta configurado como CGI .

Esta es la segunda forma:
Codigo
(fijate que he incluido las secciones minuto, hora, dia del mes, mes y dia de la semana. La sección de la linea de comando empieza justo después del espacio que esta después de la sección dia de la semana. En el CPanel la sección de la linea de comando debe ir en el ultimo cuadro de texto, o sea el más ancho)
Aquí se usa el comando wget para intentar descargar una página desde internet. En este caso como se va a hacer una petición a ejemplo.php desde internet , esto va a causar que, por intentar solicitar esta página web e intentar devolver la respuesta correspondiente (encabezados HTTP y contenido cuerpo HTML o no), internamente en el servidor va a ejecutar el PHP y este se encargara del resto.
En resumen: va a salir a internet una solicitud que va a volver al servidor mismo. Cuando se intenta responder a la solicitud que nos vino de vuelta se cumple con el objetivo de este ejemplo.
Recuerda eso que dice www.tuarroba.com , en el ejemplo de arriba se puede reemplazar con una IP . No es obligatorío usar hosts DNS para el wget . Se puede utilizar 127.0.0.1 en vez de www.tuarroba.com , por ejemplo. O también 192.168.0.44 (es de rango de intranet) o 10.0.0.44 (de rango de intranet, también) o 89.17.220.220 o lo que tu quieras .
Nota: Este ejemplo se usa cuando el PHP NO esta configurado como CGI . Aplicar este ejemplo no es la mejor elección , pero funciona .

Como podras observar, el objetivo que cumplen estos 2 ejemplos es el mismo. El objetivo es ejecutar ejemplo.php a las 22:00 horas de cada domingo .

Ya se que por ahora no podes hacer lo que te explique en este tema EffectedCard, pero de todos modos, escribi todo esto para que sepas hacerlo de antemano cuando llege el momento en que tu hosting te confirme si esta habilitado (y que te diga por que vía se hace: SSH o CPanel o la que sea) o para cuando encuentres un hosting nuevo.
Saludos.
Avatar Image
Colega ;)
Colega ;)

Muchas gracias mrtnw2003, lo tengo en cuenta. La verdad es que, tal y como te he dicho por privado, te lo has currado muchisimo.

No creo que tenga problemas a la hora de hacer la funcion, y mas porque seguramente coja un cpanel, despues del pedazo manual que has dejado aqui.


Si algun dia lo quiero poner en tuarroba o en la subweb de tutoriales que tengo pensado crearle a tuarroba, ¿tendre permiso para añadirlo?


Un Saludo

mrtnw2003
Usuario habitual
Usuario habitual

Hola EffectedCard.
Me alegra mucho de que ese pedazo de manual (como tu dices), te haya servido y también de que te haya sido util. Como vi que con las respuestas que te habían dado hasta ese momento, la cosa no quedaba muy clara, y como yo sabía del tema, me vi obligado a responder.
Y si. La verdad que me tomo mucho tiempo hacerlo (más de 3 horas, seguro). Una mitad la elabore con información que he encontrado de internet y otra mitad la elabore con información que obtuve haciendo experimentos con el CPanel y el Cron Jobs de un hosting gratuito que acepta el uso de el Cron Job (por vía de crond y crontab).

Acerca de lo que me dices de publicarlo en tuarroba.com , si, te respondo que si, yo no tendría problema en que lo publiques, pero me parece que hay arreglar algun parrafo del texto para que lo pueda entender todo el mundo y también habría que agregarle 2 imagenes del CPanel en los modos de edición estandar y advanzada de los Cron Jobs, para que no quede como un manual sin ilustrar. Más que nada porque las imagenes son una guía para el que lo lee.

También habría que poner alguna imagen de como es el uso de esto con un cliente SSH. El problema es que me borraron la web y la cuenta que tenía en un hosting ruso gratuito, por falta de visitas y actividad. Ese hosting me permitía el acceso a traves del SSH, pero no sabría decirte con precision si me permitía el acceso al crontab. En realidad me parece que no. Si mal no recuerdo una vez escribí el comando crontab ahí y la consola me respondío que el usuario (de Linux o Unix que el hosting te crea para el SSH) no tenía privilegios para usar ese comando, y que solo tenía acceso el usuario root (también de Unix o Linux).
Si eso es así, sería una lastima porque no se podría agregar una imagen del crontab siendo usado a traves del SSH . Al menos no una imagen de mi propía autoría. Si algun otro tiene acceso a un hosting con SSH y acceso al crontab por esa vía , puede colaborar proveyendo una imagen de su autoría .

Si tu quieres, EffectedCard, puedo ver si consigo encontar algun hosting que tenga esas 2 caracteristicas , para que yo pueda capturar la imagen. Aunque te aviso de que actualmente no puedo contratar ningun hosting de pago.

En resumen: no tendría problema en que lo publiques, pero no se si me gustaría de que sea publicado haciendo un Copy/Paste en bruto de tal y como esta. En mi opinion, quedaría en condiciones para publicarlo en tuarroba.com, cuando se arregle un parrafo para que lo pueda entender todo el mundo y se agregen esas 3 imagenes que detalle antes. Actualmente yo puedo proveer 2 de esas 3 imagenes que se necesitarían. ¿Tu que opinas? ¿O crees que se podría publicar tal y como esta ahora?. Si tu lo deseas, lo puedes publicar así, pero ya te explique cuales son mis temores de esa acción.
Ademas me parece que se dío a entender de que quedo más dificil de lo que parece el uso de crontab con el SSH. En especial por tu ultimo comentarío:

Cita
No creo que tenga problemas a la hora de hacer la funcion, y mas porque seguramente coja un cpanel, ...
Al menos, así me parece a mí.

Por ahora, EffectedCard , no estaría mal que me agreges en la Libreta de amigos de http://privados.miarroba.com . ¿Tengo tu aprobación para eso? . Por mensaje privado, si quieres, te detallo porque lo te pido.

Nota: Si alguién se descarga alguno de los 3 programas que sirven como clientes para SSH, se podría hacer un segundo manual acerca de su uso en general. O también lo puedo elaborar yo ese manual o, como dije, cualquiera que tenga ganas de hacerlo.

Fue un placer haberte ayudado. Si vuelves a necesitar ayuda en un tema y si yo estoy capacitado para dartela, no tienes nada más que hacer que pedirla.
Saludos y quedo a tu disposición.
Avatar Image
Colega ;)
Colega ;)

No creo que haga falta añadir las imágenes. Si quieres me espero a que edites ese párrafo que dices y, después, lo publico. Si te hace ilusión, puedes hacer las capturas. Yo prefiero que no te des el curro, bastante has tenido ya con las 3 horas


Muchas Gracias nuevamente. Por supuesto que tienes te acepto en mi libreta.

Un Saludo

mrtnw2003
Usuario habitual
Usuario habitual

Bueno, Ok. EffectedCard
Empiezo ahora a editar .
Voy a editar ese parrafo. Hacer las 2 capturas de imagen me toma poco tiempo y esfuerzo, en caso de que me quieras decir que no me esfuerze demasiado. Tampoco mi intención va a ser lucirme porque no es mi intención. Eso que me dices de que yo no me de el curro, bueno, no se, no entiendo muy bien que me quieres decir con eso (yo soy de Argentina. Aquí utilizamos otros modismos del idioma). Por eso te doy a elegir lo que mejor se ajuste a tu preferencía como te detallo en el siguiente parrafo.

A traves de un mensaje privado te envío el manual tal y como esta ahora antes de empezar a escribir esta respuesta. Eso es para que tengas a tu elección la copía de seguridad del manual que te va a llegar por el mensaje privado o el manual después de la edición que voy hacer ahora (se vera en el mensaje #12 de este tema). Así tu podras elegir entre esas 2 opciones para publicar en tuarroba.com .
Te lo dejo a tu entera disposición . Te prometo que no me molestare para nada .

Edito el mensaje #12 de este tema y te lo dejo listo. Solo las 2 imagenes van a ser para ilustrar.

EDICIÓN: Como puro pedazo de despitado que soy, te digo que el mensaje privado que te envíe a las 22:21 tiene un error (te envíe un contenido equivocado en el cuerpo del mensaje. El fichero adjunto si es correcto, Ok y el que corresponde), el cual fue corregido en el mensaje privado que te envíe a las 22:42 .

Desde ya, muchas gracias por publicarlo en tuarroba.com .
Saludos.

mrtnw2003
Usuario habitual
Usuario habitual

Bueno, esta edición que hice hace 1 hora y varios minutos al mensaje #10 creo que ya podría ser el manual final, aunque todavía podría haber cambios o no. Por ahora, no se me ocurre modificarle o agregarle más nada, EffectedCard. O sea que puede ser (o no) un prototipo candidato para ser el manual final.

La fecha y hora de esta edición de la que hablo en los siguientes parrafos es del 7 de abril del 2007 a las 19:14 GMT+01:00.

En esta edición le agrege las 2 imagenes que prometi, revise que la redacción estuviera bien, correguí los errores de ortografía, y agrege un parrafo nuevo para la 2da imagen.

Pero hay un detalle importante que se debería tener en cuenta:
Las 2 primeras páginas web que aparecen en el manual tienen su contenido en ingles. ¿Crees que se debería traducir ese contenido al español?. Si tu respuesta a esta pregunta fuera que SI, ¿Lo traducirias tu o yo?. Yo se ingles así que lo puedo traducir sin problemas.
Te digo esto porque lo que figura en esas páginas tendría que ser contenido extra o anexo de este manual, porque su contenido esta estrechamente relacionado con todo lo que se explica en el manual. Y eso implica que todos los lectores de habla hispana lo puedan entender.

Espero tu aprobación (o no) para este prototipo del manual, EffectedCard. Siempre y cuando que para cuando vuelvas de tus vacaciones yo no descubra que me falto algun detalle por agregar a este manual en evolución. Sin embargo dudo que sea así porque ya tuve suficiente tiempo para pensar en eso, por lo cual es muy probable que el manual quede así, ya listo para publicar en tuarroba.com.

Quedo a tu disposición.

Felices pascuas, en caso de que leas esto antes del domingo.
Saludos.

Avatar Image
Colega ;)
Colega ;)

Ayer volvi de vacaciones. Gracias.


Al final, entre los privados y los mensajes, me he mareado. ¿El resultado definitivo seria este mensaje?

mrtnw2003
Usuario habitual
Usuario habitual

Hola de nuevo EffectedCard.

Disculpa que te responda tan tarde, pero desde este lunes 9 de abril hasta hoy, miércoles 18 de abril, no pude conectarme a internet porque durante ese tiempo tuve algunos problemitas y compromisos personales.

Si, es ese el mensaje EffectedCard.

Disculpame por la confusion de los privados. Si lees el mensaje #14 (este sería el mensaje #17), en la parte del parrafo de la EDICIÓN veras una explicación de porque te envíe 2 mensajes privados con el mismo asunto.

Leyendo el mensaje #14 me di cuenta también, que escribi "mensaje #12" cuando debi haber escrito "mensaje #10". Recien me di cuenta. Es algo que me suele suceder. Por eso digo que soy un pedazo de despistado.

Antes de que lo publiques, te muestro una pequeña agregación que debes hacer.
Esto que te cito a continuación sería la ultima parte o fragmento del manual, con una palabra que debes agregar (es lo que esta en negrita, texto rojo y fondo negro. Todo el resto del texto que esta dentro de la cita es el original y sin modificaciones que aparece en el mensaje #10 en ese fragmento. Es un Copy/Paste). Esto lo extraigo del texto del mensaje #10 para te des una idea de donde (la ubicación) se agrega la palabra. La unica finalidad de esto es indicarte la ubicación del agregado.

Cita
Aquí se usa el comando wget para intentar descargar una página desde internet. En este caso como se va a hacer una petición a ejemplo.php desde internet , esto va a causar que, por intentar solicitar esta página web e intentar devolver la respuesta correspondiente (encabezados HTTP y contenido cuerpo HTML o no), internamente en el servidor se va a ejecutar el PHP y este se encargara del resto.
En resumen: va a salir a internet una solicitud que va a volver al servidor mismo. Cuando se intenta responder a la solicitud que nos vino de vuelta se cumple con el objetivo de este ejemplo.
Recuerda eso que dice www.tuarroba.com , en el ejemplo de arriba se puede reemplazar con una IP . No es obligatorío usar hosts DNS para el wget . Se puede utilizar 127.0.0.1 en vez de www.tuarroba.com , por ejemplo. O también 192.168.0.44 (es de rango de intranet) o 10.0.0.44 (de rango de intranet, también) o 89.17.220.220 o lo que tu quieras .
Nota: Este ejemplo se usa cuando el PHP NO esta configurado como CGI . Aplicar este ejemplo no es la mejor elección , pero funciona .

Como podras observar, el objetivo que cumplen estos 2 ejemplos es el mismo. El objetivo es ejecutar ejemplo.php a las 22:00 horas de cada domingo .
Eso sería otra prueba que te indica que soy despistado .

Después de esto, creo que ya se podría publicar, ya que paso ese domingo (es pasado ya), lo lei todo de nuevo hace unos minutos atras, y no se me ocurrío más nada para agregar o modificar. De todos modos, tengo preocupación de que pueda NO ser entendido por los que son muy principiantes en la informatica y en el tema de las páginas web, pero si agregas explicaciones que tu creas que sean necesarias por tu parte, se solucionaría ese problema. .

Saludos.
Avatar Image
Colega ;)
Colega ;)

De acuerdo. Intentare publicarlo este fin de semana. Si no puedo, tendra que ser ya al fin de semana que viene. Ando bastante liado con los estudios.


Muchas gracias por todo.
Un Saludo

ATENCIÓN: Este tema no tiene actividad desde hace más de 6 MESES,
te recomendamos abrir un nuevo tema en lugar de responder al actual
Opciones:
Ir al subforo:
Permisos:
TU NO PUEDES Escribir nuevos temas
TU NO PUEDES Responder a los temas
TU NO PUEDES Editar tus propios mensajes
TU NO PUEDES Borrar tus propios mensajes
Temas similares
No se han encontrado temas similares