Meteoclimatic

Software => WeeWX => Mensaje iniciado por: kocher en 07 de Julio de 2024, 20:10:53

Título: Automatizar FTP con ayuda de CRONTAB algo especial
Publicado por: kocher en 07 de Julio de 2024, 20:10:53
Saludos a todos
Estoy ejecutando en un Pc,  Linux con una distribución Ubuntu:

"DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=22.04
DISTRIB_CODENAME=jammy
DISTRIB_DESCRIPTION="Ubuntu 22.04.2 LTS"
PRETTY_NAME="Ubuntu 22.04.2 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.2 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy"

Weewx  versión 4.10.2
El "Skin" que está funcionando, es "Belchertown versión 1.3.1":
http://kocher.es/weewx/belchertown

Pues bien, localmente todo funciona bien, se generan las páginas html, json ..
El problema que tengo es que, la página en la web no se actualiza, salvo que lo haga de forma manual, bien con Filezilla o mediante unos archivos "sh".
Concretamente son 10 de estos archivos los que se pueden encargar de ello; el problema es que lo tengo que hacer de forma manual:

./miFTP.sh && ./miFTP1.sh && ./miFTP2.sh && ./miFTP3.sh && ./miFTP4.sh && ./miFTP5.sh && ./miFTP6.sh && ./miFTP7.sh && ./miFTP8.sh && ./miFTP9.sh

Cuando los activo de forma manual, actualizan la página perfectamente.
Intenté crear un CRONTAB que, no sé porqué, me chafó toda la página; era del tipo (lo escribo de memoria ya que lo eliminé):
*/5 * * * * /Documents/.miFTP.sh && ./miFTP1.sh && ./.......

Bien, la pregunta y solicitud de ayuda es la siguiente:

¿Se puede crear, mediante CRONTAB un archivo que suba mediante FTP estos archivos cada 5 minutos? y, en ese caso como sería el código?

Muy agradecido por vuestra atención

Título: Re:Automatizar FTP con ayuda de CRONTAB algo especial
Publicado por: jantoni en 07 de Julio de 2024, 20:21:29
Sin poder valorarlo bien, al estar respondiendo con el móvil, me atrevo a preguntarte, si los servicios los genera weewx, ¿por qué no los subes con el FTP de weewx?

O algo no he entendido bien
Título: Re:Automatizar FTP con ayuda de CRONTAB algo especial
Publicado por: jantoni en 07 de Julio de 2024, 20:26:04
Pero, en todo caso, claro que se puede hacer

Habría que hacer un script que llame a FTP si lo quieres hacer por FTP o a curl si lo quieres hacer por http

Puedes usar FTP interactivo, poniendo comodines,

Hay muchas opciones

Personalmente no utilizo FTP en scripts hace muchos años, cuando pasaba ficheros de un ordenador a otro para hacer la copia de seguridad de weewx

Título: Re:Automatizar FTP con ayuda de CRONTAB algo especial
Publicado por: kocher en 07 de Julio de 2024, 20:36:03
Saludos Jantoni (El Linuxero) je je

Te agradezco tus rápidas respuestas de ayuda que siempre vienen bien.
Bueno, no sé como explicarlo mejor.

Dices que podría subirlo con el FTP de weewx; pero no tengo idea de como hacerlo.
Tampoco conozco la manera de de ucomo utilizar CURL (algo he leído).

La idea es automatizar cada 5 minutos, esa concatenación de archivo .sh, que activados manualmente funcionan de lujo.

En fin, espero que gracias a vosotros, podamos encontrar una solución.

Un fuerte abrazo



Título: Re:Automatizar FTP con ayuda de CRONTAB algo especial
Publicado por: jantoni en 07 de Julio de 2024, 20:42:36
Los ficheros los genera Weewx?

Título: Re:Automatizar FTP con ayuda de CRONTAB algo especial
Publicado por: kocher en 07 de Julio de 2024, 20:54:35
Código: [Seleccionar]
Los ficheros los genera Weewx?
Efectivamente; esos ficheros los creé yo pero, al activarlos, realizan FTP de todos los ficheros locales hasta mi web

Título: Re:Automatizar FTP con ayuda de CRONTAB algo especial
Publicado por: jantoni en 07 de Julio de 2024, 21:52:08
Habría que verlo, pero si son ficheros generados cada vez que weewx actualiza archivos se puede enchufar por FTP a donde tu quieras.

Creo recordar que estén la sección stdrprt o algo así está la configuración del FTP. Puedes tener tantos FTP como quieras

Desde el móvil no puedo enviarte mi configuración, pero a ver si mañana me acuerdo y te lo paso
Título: Re:Automatizar FTP con ayuda de CRONTAB algo especial
Publicado por: kocher en 07 de Julio de 2024, 22:20:41
Muchas gracias Jantoni

He intentado utilizar el "skin" FTP de weewx, sin resultados

Eres un hacha

Saludos desde San Sebastián


Título: Re:Automatizar FTP con ayuda de CRONTAB algo especial
Publicado por: jantoni en 08 de Julio de 2024, 00:06:39
Es sencillo….jo….es que desde el móvil nada….y desde el iPad, que estoy ahora, ya probé algunos programas para terminal de Linux y fueron un desastre.

Con el ordenador y las 3 pantallas todo es más fácil…..y así luego se quedan mis ojos…..para llevarlos al rastro  *+* *+* *+* *+* *+*
Título: Re:Automatizar FTP con ayuda de CRONTAB algo especial
Publicado por: jantoni en 08 de Julio de 2024, 08:53:20
Bueno, aquí tienes la configuración de mi FTP

Manejo dos servidores en la empresa OVH.net

Todo es autoexplicativo.

Código: [Seleccionar]
    [[FTP]]
        # FTP'ing the results to a webserver is treated as just another report,
        # albeit one with an unusual report generator!
        skin = Ftp

        # If you wish to use FTP, set "enable" to "true", then
        # fill out the next four lines.
        # Use quotes around passwords to guard against parsing errors.
        enable = false
        user = usuario
        password = contraseña
        server = ftp.miftphost.hosting.ovh.net    # The ftp server name, e.g, www.myserver.org
        path = www/meteo    # The destination directory, e.g., /weather

        # Set to True for an FTP over TLS (FTPS) connection. Not all servers
        # support this.
        secure_ftp = False

        # To upload files from something other than what HTML_ROOT is set
        # to above, specify a different HTML_ROOT here.
        #HTML_ROOT = public_html

        # Most FTP servers use port 21
        port = 21

        # Set to 1 to use passive mode, zero for active mode
        passive = 1


    [[FTP2]]
        # FTP'ing the results to a webserver is treated as just another report,
        # albeit one with an unusual report generator!
        skin = Ftp

        # If you wish to use FTP, set "enable" to "true", then
        # fill out the next four lines.
        # Use quotes around passwords to guard against parsing errors.
        enable = true
        user = usuario
        password = contraseña
        server = ftp.mifpthost2.hosting.ovh.net    # The ftp server name, e.g, www.myserver.org
        path = www    # The destination directory, e.g., /weather

        # Set to True for an FTP over TLS (FTPS) connection. Not all servers
        # support this.
        secure_ftp = False

        # To upload files from something other than what HTML_ROOT is set
        # to above, specify a different HTML_ROOT here.
        HTML_ROOT = public_html/davis1

        # Most FTP servers use port 21
        port = 21

        # Set to 1 to use passive mode, zero for active mode
        passive = 1

Debes indicar skin = Ftp para que Weewx sepa lo que tiene que hacer.

El nombre entre doble corchetes es irrelevante....lo eliges tú....yo tengo FTP y FTP2

A continuación enable = true, pues de lo contrario no se activa.

Usuario y Contraseña del servidor FTP.

El nombre del servidor ftp

El path es el camino desde el directorio raiz de tu servidor ftp. Este concepto es el que más trabajo cuesta asimilar. Si no lo tienes claro, dímelo y te cuento trucos....pero depende de cada servidor.

A continuación viene secure_ftp......siempre a False....mucha gente cree que activándolo, Weewx utiliza el protocolo seguro SFTP para enviar....y no....es el protoco FTPS que lo usan muy pocos servidores. Si es necesario usar SFTP hay que instalar una extensión a weewx. Pero de eso ya hablaríamos si hiciese flta.

Me salto el HTML_ROOT y luego vuelvo

port =21 salvo que la empresa de hosting te diga otro puerto diferente.

passive = 1 salvo que sepas lo que haces *+*

Bien HTML_ROOT verás que en uno de los FTP no se lo indico pues lo tengo comentado......en ese caso, Weewx enviará TODOS LOS FICHEROS del directorio HTML_ROOT por defecto configurado en otra parte de Weewx.conf al servidor FTP.....insisto todos.

Si pones HTML_ROOT apuntando a otro sitio entonces, Weewx enviará todos los ficheros de ese directorio.

Título: Re:Automatizar FTP con ayuda de CRONTAB algo especial
Publicado por: jantoni en 08 de Julio de 2024, 09:00:29
Vayamos a mi ejemplo.....

Yo tengo

WEEWX_ROOT = /home/weewx

Luego en la sección de skins, tenemos en StdReport

HTML_ROOT = public_html

Este es el directorio por defecto y por tanto apunta a /home/weewx/public_html

Pero luego tengo

Código: [Seleccionar]
    [[NeowxMaterialReport]]
        # The SeasonsReport uses the 'Seasons' skin, which contains the
        # images, templates and plots for the report.
        skin = neowx-material
        enable = true
        HTML_ROOT = public_html/test/davis1

Por lo que tengo, otro skin en /home/public_html/test/davis1

Otro skin

Código: [Seleccionar]
    [[SeasonsReport]]
        # The SeasonsReport uses the 'Seasons' skin, which contains the
        # images, templates and plots for the report.
        skin = Seasons
        enable = true
        HTML_ROOT = public_html/davis1

Y cuyos ficheros están en /home/weewx/public_html/davis1

Si yo quiero enviar los ficheros que están ubicados en este último skin en HTML_ROOT en la sección FTP pondré

HTML_ROOT = public_html/davis1

Y Weewx cuando genere ficheros, enviará TODOS los archivos ubicados en ese directorio y sus subdirectorios al servidor FTP

Una vez modificada la configuración, recuerda que al tocar el fichero weewx.conf debes recargarlo o reiniciar weewx.
Título: Re:Automatizar FTP con ayuda de CRONTAB algo especial
Publicado por: jantoni en 08 de Julio de 2024, 09:02:05
Por esto te preguntaba que si los ficheros los genera Weewx.

Si los generara otro programa, ya sería más complicado y ahí ya no tengo experiencia.

En todo caso, también te puedes generar un skin propio, basado en un skin de los disponibles.....habría que configurar muchas cosas.....pero podrías, podrías
Título: Re:Automatizar FTP con ayuda de CRONTAB algo especial
Publicado por: kocher en 08 de Julio de 2024, 09:37:45
Buenos días Jantoni

Agradecido por tus explicaciones; hasta ahora no me ha funcionado; creo que el mayor problema que encuentro, es el de las direcciones; en mi caso he puesto lo siguiente:

   path = /www/weewx/belchertown   # The destination directory, e.g., /weather  (directorio remoto en mi web)

   HTML_ROOT = /var/www/html/weewx/belchertown  (directorio local en mi equipo)

    Pero, sigue sin funcionar    :;
Título: Re:Automatizar FTP con ayuda de CRONTAB algo especial
Publicado por: kocher en 08 de Julio de 2024, 09:51:38
He modificado el nombre de mi servidor; ahora he visto que se trata del nombre del servidor FTP

Voy a esperar un par de ciclos de weewx, para ver si funciona

Muchas gracias, veremos  :;
Título: Re:Automatizar FTP con ayuda de CRONTAB algo especial
Publicado por: kocher en 08 de Julio de 2024, 10:09:53
Pues no

No funciona; he revisado las direcciones y, creo que son correctas.

Sospecho que el fallo está en la dirección remota; he probado:
1) la dirección FTP completa:      /kocher1/www/weewx/belchertown
2) la dirección de la carpeta remota: /belchertown

Voy a probar: /weewx/belchertown

A ver si hay suerte je je

Título: Re:Automatizar FTP con ayuda de CRONTAB algo especial
Publicado por: jantoni en 08 de Julio de 2024, 10:43:02
Kocher

Estás usando direcciones absolutas en lugar de relativas.

Si usas direcciones absolutas tienes que ponerlas completas.

En mi ejemplo son direcciones relativas

Por ejemplo

Si WEEWX_ROOT = /home/weewx      En mi caso

Entonces si los ficheros están en

/home/weewx/public_html/davis1

ROOT_HTML = public/davis1      Como relativa, es decir, nace de /home/weewx

o

ROOT_HTML = /home/weewx/public_html/davis1       Como dirección absoluta

Lo mismo pasa en el servidor de destino

En el servidor de destino, lo mejor es entrar con el comando ftp manualmente y ver en qué directorio “aterrizas” al identificarte. Puedes ver ese directorio con el comando pwd
Título: Re:Automatizar FTP con ayuda de CRONTAB algo especial
Publicado por: jantoni en 08 de Julio de 2024, 10:47:49
Pues no

No funciona; he revisado las direcciones y, creo que son correctas.

Sospecho que el fallo está en la dirección remota; he probado:
1) la dirección FTP completa:      /kocher1/www/weewx/belchertown
2) la dirección de la carpeta remota: /belchertown

Voy a probar: /weewx/belchertown

A ver si hay suerte je je

Seguramente será

www/weewx/Belchertown

o

weewx/Belchertown

Cada servidor de cada hosting es diferente en función de su configuración

Si entras con el comando

ftp tuservidordeficheros.loquesea

Te identificas

Y metes inmediatamente el comando

pwd

Te devolverá el directorio de “aterrizaje”
Título: Re:Automatizar FTP con ayuda de CRONTAB algo especial
Publicado por: kocher en 08 de Julio de 2024, 11:31:56
Bendito seas por tu santa paciencia; me temo que no soy un buen alumno.

He puesto las siguientes direcciones:

   path = weewx/belchertown   # The destination directory, e.g., /weather

   HTML_ROOT = html/weewx/belchertown

Teniendo en cuenta que las direcciones absolutas son:

  /var/www/html/weewx/belchertown/        (dirección local)

  /kocher1/www/weewx/belchertown        (dirección remota)


  ¿se te ocurre alguna idea ?

Y, sobre todo, muchísimas gracias



 
Título: Re:Automatizar FTP con ayuda de CRONTAB algo especial
Publicado por: jantoni en 08 de Julio de 2024, 11:37:55
Bendito seas por tu santa paciencia; me temo que no soy un buen alumno.

He puesto las siguientes direcciones:

   path = weewx/belchertown   # The destination directory, e.g., /weather

   HTML_ROOT = html/weewx/belchertown

Teniendo en cuenta que las direcciones absolutas son:

  /var/www/html/weewx/belchertown/        (dirección local)

  /kocher1/www/weewx/belchertown        (dirección remota)


  ¿se te ocurre alguna idea ?

Y, sobre todo, muchísimas gracias



 

La primera, me la creo

La puedes poner en absoluta

HTML_ROOT = /var/www/html/weewx/belchertown/

Ojo a las mayúsculas…….Belchertown suele representarse con B mayúscula……y Linux no es Windows….es sensible a mayúsculas,

La segunda me resulta más raro. Pero como te dije….¿donde aterrizas al entrar manualmente con ftp? Donde aterrices manualmente es donde va a hacerlo el ftp de Weewx y no es lo mismo que aterrices en un directorio o en otro
Título: Re:Automatizar FTP con ayuda de CRONTAB algo especial
Publicado por: kocher en 08 de Julio de 2024, 11:47:37
Código: [Seleccionar]
La segunda me resulta más raro. Pero como te dije….¿donde aterrizas al entrar manualmente con ftp? Donde aterrices manualmente es donde va a hacerlo el ftp de Weewx y no es lo mismo que aterrices en un directorio o en otro
Código: [Seleccionar]
Te identificas Y metes inmediatamente el comando lcd
Te devolverá el directorio de “aterrizaje”

No tengo ni idea de como ni donde ejecutar ese comando lcd

Ya ves, soy un desastre

Título: Re:Automatizar FTP con ayuda de CRONTAB algo especial
Publicado por: jantoni en 08 de Julio de 2024, 12:24:33
Copia aquí unos de esos ficheros que indicabas al principio….los que terminaban en sh

Quítales las contraseñas y lo que sea delicado

Ahí nos tiene que dar una pista
Título: Re:Automatizar FTP con ayuda de CRONTAB algo especial
Publicado por: kocher en 08 de Julio de 2024, 13:29:09
Estos son:

Código: [Seleccionar]
javier@javier-System-Product-Name:~/Documents$ ./miFTP.sh && ./miFTP1.sh && ./miFTP2.sh && ./miFTP3.sh && ./miFTP4.sh && ./miFTP5.sh && ./miFTP6.sh && ./miFTP7.sh && ./miFTP8.sh && ./miFTP9.sh

Para crear un crontab, hay que separar cada archivo con ";" en vez de && que funciona manualmente,
El asunto es que he conseguido crear un "crontab" pero me ha sido imposible concederle los permisos necesarios; de hecho, me pide la contraseña al intentar entrar en la carpeta (por cierto, estoy hasta el gorro de los permisos; ya los odio).

Como alternativa, estoy intentando de la página se actualice cada 5 minutos, editando el fichero "skin.conf" pero, por ahora no funciona.

je je, cuando se tuercen las cosas más vale hacer otra totalmente diferente, para resetear el cacumen .

Disculpa, pero he arrojado la toalla con respecto al skin FTP

Estoy muy muy agradecido por tus continuos y sabios consejos,

Veremos a ver como acaba todo jjjj    *-*

Saludos



Título: Re:Automatizar FTP con ayuda de CRONTAB algo especial
Publicado por: jantoni en 08 de Julio de 2024, 14:16:09
No hombre

Pon el contenido de uno de ellos *+*
Título: Re:Automatizar FTP con ayuda de CRONTAB algo especial
Publicado por: kocher en 08 de Julio de 2024, 14:34:28
je je, no te había entendido; te pongo el código dde uno de ellos;

 
Código: [Seleccionar]
#!/bin/bash

ftp -n ftp.kocher.es <<EOF

user xxxxx yyyy
binary

cd www/weewx/belchertown/
lcd /var/www/html/weewx/belchertown/
mput index.html


cd ..
cd ..

quit

EOF
Título: Re:Automatizar FTP con ayuda de CRONTAB algo especial
Publicado por: jantoni en 08 de Julio de 2024, 15:25:57
Vale, ahí ya tenemos pistas importantes

Luego te cuento

Ahora, el café es sagrado *+* *+*
Título: Re:Automatizar FTP con ayuda de CRONTAB algo especial
Publicado por: jantoni en 08 de Julio de 2024, 18:20:47
Perdona.....antes dije comando lcd

era el comando

pwd

Pero bueno, vamos al lío
Título: Re:Automatizar FTP con ayuda de CRONTAB algo especial
Publicado por: jantoni en 08 de Julio de 2024, 18:29:44
je je, no te había entendido; te pongo el código dde uno de ellos;

 
Código: [Seleccionar]
#!/bin/bash

ftp -n ftp.kocher.es <<EOF

user xxxxx yyyy
binary

cd www/weewx/belchertown/
lcd /var/www/html/weewx/belchertown/
mput index.html


cd ..
cd ..

quit

EOF

Bien, con esto ya tenemos pistas

Citar
ftp -n ftp.kocher.es <<EOF

Ya sabemos el servidor que pondremos en el skin FTP

Citar
cd www/weewx/belchertown/

Ya sabemos que en tu script, te situas en el directorio www/weewx/belchertown del servidor.....pero es una dirección relativa. Es decir que antes de esa dirección hay una porción de texto que no se muestra.....pero nos da igual....copiaremos esa dirección relativa.

Citar
lcd /var/www/html/weewx/belchertown/

Aqui sin embargo, en el directorio local (desde donde se envían los ficheros) se indica la dirección absoluta.....así que también la copiaremos.

Y aquí puntualizo /var/www/html/weewx es, por defecto, la dirección a la que apunta HTML_ROOT en la instalación de Debian/Ubuntu, así que podríamos indicar como dirección absoluta /var/www/html/weewx/belchertown o como relativa simplemente belchertown. Pondremos un ejemplo para cada uno de ellos.

Y vamos a ello:

Caso 1....con dirección absoluta en el directorio local

Código: [Seleccionar]
[FTP]]
        skin = Ftp
        enable = tue
        user = usuario
        password = contraseña
        server = ftp.kocher.es
        path = www/weewx/belchertown
        secure_ftp = False
        HTML_ROOT = /var/www/html/weewx/belchertown
        port = 21
        passive = 1

Caso 2....con dirección relativa en el directorio local

Código: [Seleccionar]
[FTP]]
        skin = Ftp
        enable = tue
        user = usuario
        password = contraseña
        server = ftp.kocher.es
        path = www/weewx/belchertown
        secure_ftp = False
        HTML_ROOT = belchertown
        port = 21
        passive = 1

Ambos ejemplos deberían funcionar tras un reinicio de Weewx
Título: Re:Automatizar FTP con ayuda de CRONTAB algo especial
Publicado por: kocher en 08 de Julio de 2024, 19:55:46
Ufffffffffffffffffffffffffff

¡ Ahora ha funcionado !

He puesto las siguientes direcciones:

path = www/weewx/belchertown
HML_ROOT = /var/www/html/weewx/belchertown   (si pongo belchertown solo, nó funciona)

 Increíble jjjjj; no termino de creérmelo

Jantoni; te debo mucho por esto que has hecho.

Mil gracias y enhorabuena     :aplaude1:

Un fuerte abrazo y ya sabes donde me tienes

kocher
Título: Re:Automatizar FTP con ayuda de CRONTAB algo especial
Publicado por: jantoni en 08 de Julio de 2024, 19:59:14
Unos pintxos *+* *+* *+* *+* *+*

Si no funciona solo con HTML_ROOT = belchertown

Posiblemente sea porque entre en conflicto con WEEWX_ROOT......

Pues, ale funcionando.....a disfrutarlo
Título: Re:Automatizar FTP con ayuda de CRONTAB algo especial
Publicado por: kocher en 08 de Julio de 2024, 20:02:34
Eso está hecho

Te paso a buscar en moto y nos movemos por San Sebastián para conocer cantidad de "recovecos" jjjj

Sería un placer para mí     O:-)