Meteoclimatic

Software => WeeWX => Mensaje iniciado por: jmsolher en 18 de Julio del 2019, 11:20:00 am

Título: SFTP
Publicado por: jmsolher en 18 de Julio del 2019, 11:20:00 am
Hola


he estado mirando por el foro y en grupos de Google sobre este tema del SFTP y no veo nada al respecto (o al menos no lo he encontrado, solamente algún script por ahí que no he contrastado que sea seguro y funcione) la pregunta es obvia ¿existe la forma de envío vía SFTP (ojo NO FTPS) en vez del tradicional FTP en WeeWX?


Saludos.
Título: Re:SFTP
Publicado por: jmviper en 18 de Julio del 2019, 11:55:57 am
Hola JosMar

Ve a weewx.conf y en la sección de ftp tienes la opción de activar sftp:

[[FTP]]
        # FTP'ing the results to a webserver is treated as just another report,
        # albeit one with an unusual report generator!
        skin = Ftp
       
        # Set to True for a secure FTP (SFTP) connection. Not all servers
        # support this.
        secure_ftp = True

Por defecto está en False y tendrás que ponerlo a True. Dice que no todos los servidores lo soportan.

saludos
Título: Re:SFTP
Publicado por: jmviper en 18 de Julio del 2019, 12:00:45 pm
Bueno...parece que no es SFTP sino FTP a través de SSH que no es lo mismo. Posiblemente si la conexión es SFTP "pura" no tenga éxito.
Título: Re:SFTP
Publicado por: jmsolher en 18 de Julio del 2019, 12:03:35 pm
sí, creo que hace referencia a FTPS no SFTP por eso preguntaba en el foro. jejeje.



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


así me aparece a mi en mi versión de WeeWX que es la 3.9.1
Título: Re:SFTP
Publicado por: jmviper en 18 de Julio del 2019, 12:20:41 pm
A ver, hay diferentes tipos de conexiones, las que yo me sé y son las más principales son:

FTP = FTP sin seguridad, usuario y contraseña van en texto plano
FTPS = FTP Implícito, con seguridad, generalmente en el puerto 990 en vez del 21.
FTPES = FTP Explícito, a veces se ve como FTPS solamente también. Va por el puerto 21 como el FTP normal pero permite con STARTTLS una conexión segura.

SFTP = No es FTP en sí, es otro protocolo a través del puerto 22 (SSH)
Secure ftp =  Es una sesión FTP normal a través de un túnel creado por SSH por el puerto 22, nada que ver con SFTP.

Este último es el que parece ser que usa weewx con esa opción por lo que no es una conexión con protocolo SFTP.

Habría que ver si hay una extensión por ahí de weewx que permitiese el sftp.
Título: Re:SFTP
Publicado por: jmsolher en 18 de Julio del 2019, 12:25:23 pm
conozco ésta https://github.com/matthewwall/weewx-sftp (https://github.com/matthewwall/weewx-sftp) pero he visto que hay gente que le da problemas. Yo he tratado de implementarla pero mi problema ha sido otro relacionado con python.. así que no he podido llegar a comprobar su éxito.
Título: Re:SFTP
Publicado por: jmviper en 18 de Julio del 2019, 15:23:19 pm
Ok, no tenía tiempo para buscar la extensión... ya veo que la has encontrado  :)

pues me he puesto a instalarla y me ha dado fallo al intentar instalar el módulo de Python pysftp con sudo pip install pysftp

Googleando he visto que faltaban algunos paquetes para poder instalarse así que los he instalado:

sudo apt-get install build-essential libssl-dev libffi-dev python-dev

Después he ejecutado sudo pip install pysftp y se ha instalado con éxito pero ha tardado lo suyo (por lo menos 10 minutos o algo más)

Después se siguen los pasos de la instalación de la extensión de weewx y en el weewx.conf he puesto los datos de sftp de otra Orange pi que tengo en la sección nueva que ha creado [[sftp]], he reiniciado weewx et voilà !! ha subido todos los archivos web a la otra Orange pi   :)

Lo principal es que puedas instalar el módulo pysftp de Python. Prueba lo que he puesto a ver si tienes éxito.


Título: Re:SFTP
Publicado por: jmsolher en 18 de Julio del 2019, 15:42:22 pm

Lo principal es que puedas instalar el módulo pysftp de Python. Prueba lo que he puesto a ver si tienes éxito.


éxito!!! sí, también a mi instalación le debía faltar algún paquete adicional... vamos a comprobar qué tal va esta extensión...
Título: Re:SFTP
Publicado por: jmsolher en 18 de Julio del 2019, 22:19:20 pm
bueno pues tras la instalación exitosa he tratado de enviar un archivo entre dos ordenadores que tengo en casa pero no ha sucedido nada (me he cerciorado de que las IP fueran correctas , etc.. en modo ftp ha funcionado). Una pregunta ¿has modificado algo más en el weewx.conf aparte de, obviamente [[sftp]] ?
Título: Re:SFTP
Publicado por: jmviper en 18 de Julio del 2019, 22:35:27 pm

Una pregunta ¿has modificado algo más en el weewx.conf aparte de, obviamente [[sftp]] ?


No, no he tocado nada más y así es como lo tengo (info sensible quitada):

[[sftp]]
        server = IPdelservidorsftp
        user = miusuario
        skin = sftp
        path = /home/jmviper/weewx
        password = micontraseña
        port = 22

Si quieres ver donde falla si tienes log de weewx específico lo miras con sudo tail -100 /var/log/weewx.log, y si no lo tienes, lo ves con sudo tail -100 /var/log/syslog
Ahí te dirá si falla y en qué. He puesto las últimas 100 líneas porque se supone que serán suficientes para que aparezca.
       
Título: Re:SFTP
Publicado por: jmsolher en 18 de Julio del 2019, 23:38:04 pm
El apartado [[FTP]] donde pone enable=true en weewx.conf lo has dejado igual? Tienes el resto de apartados con los datos de servidor, usuario, etc rellenados en dicho apartado? Lo pregunto porque en el archivo de logs no parece que ocurra nada fuera de lo normal simplemente es como que la extensión SFTP no hace nada y entonces me he dedicado a jugar un poco modificando en el apartado FTP por comprobar si estaba interfiriendo este con SFTP .
Título: Re:SFTP
Publicado por: jmviper en 19 de Julio del 2019, 00:27:06 am
Esta es mi sección de FTP:

[[FTP]]
        # FTP'ing the results to a webserver is treated as just another report,
        # albeit one with an unusual report generator!
        skin = Ftp
       
        # Set to True for a secure FTP (SFTP) 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 = /var/www/weewx
       
        # Most FTP servers use port 21
        port = 21
       
        # Set to 1 to use passive mode, zero for active mode
        passive = 1

Como ves no lo uso, ni tengo usuario y contraseña.

Si diera fallo la subida saldría en los logs, de hecho al principio me ha fallado la subida de archivos por sftp y gracias al log he logrado ver qué iba mal y lo he corregido.

El otro equipo con Linux tiene el servidor SSH activado (te puedes comunicar con él por SSH ?)
Título: Re:SFTP
Publicado por: jmsolher en 20 de Julio del 2019, 01:36:57 am
hola


sí, ambos ordenadores tenían SSH y por terminal en uno de ellos conseguía acceder al otro pero SFTP no funcionaba. Finalmente tras investigar un poco por Google he visto que mi problema era que no tenía determinados paquetes instalados (en el log no conseguía aclararme nada entre tanta info y seguramente por allí estarían indicando la  necesidad de estos paquetes 'extra' quiero suponer  ;D [size=78%] )[/size]
Título: Re:SFTP
Publicado por: jmviper en 20 de Julio del 2019, 10:04:17 am
Ok celebro de que hayas tenido éxito

No caí en comentarte de probar con Python directamente si podías conectar/subir/bajar archivos con ese módulo pysftp

Para probarlo se inicia python en la consola de Linux y una vez dentro se carga el módulo con import pysftp.

Se conecta con sftp = pysftp.Connection('hostname', username='me', password='secret') y se hacen las operaciones que se quieran.

La documentación y ejemplos está en:

https://pysftp.readthedocs.io/en/release_0.2.8/cookbook.html

Se pueden crear scripts personalizados de python de subir/bajar etc ficheros y ejecutarlos con cron.

saludos
Título: Re:SFTP
Publicado por: jmsolher en 20 de Julio del 2019, 14:17:04 pm
ok gracias lo echaré un ojo y trastearé un poco  ;)  de todas formas la extensión SFTP funciona de maravilla (ahora que la he conseguido echar a andar jejeje) deberían tenerla en cuenta para futuras actualizaciones de WeeWX, en mi humilde opinión, como otra opción más a usar en el paquete principal donde a día de hoy viene FTP y RSYNC
Título: Re:SFTP
Publicado por: jmviper en 20 de Julio del 2019, 20:02:33 pm
Es lo bueno de la "modularidad" y las extensiones... tienes una instalación base sencilla y ligera a la que puedes ir añadiendo "funcionalidades".
A Python le puedes añadir fácilmente módulos con su gestor de paquetes pip, en cuanto a implementar lo de sftp por defecto a weewx como hemos visto no es muy sencilla la cosa... hacen falta instalar paquetes de Python y de Linux para que funcione. Pero bueno... supongo que si hubiese mucha demanda lo mismo se pondría pero hoy por hoy FTP es el que más manda.
Título: Re:SFTP
Publicado por: jmsolher en 21 de Julio del 2019, 01:33:21 am
si, pero FTP no lo veo muy seguro para enviar datos 'afuera' y nos queda la opción de rsync pero a veces aunque se configuren bien las llaves y por terminal todo parezca funcionar en cuanto le dejas solo para que haga su trabajo le cuesta funcionar bien 'a la primera'... no sé todo tiene sus pros y sus contras.
Título: Re:SFTP
Publicado por: ogalvan en 26 de Diciembre del 2023, 19:57:46 pm
Buenas tardes

Estoy peleando con el tema SFTP y no consigo instalar pysftp , me aparece el siguiente aviso y mis justos conocimientos no veo por donde seguir:
--------------------------------------------------------------------------------------------------------
sudo pip install pysftp

error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
    python3-xyz, where xyz is the package you are trying to
    install.

    If you wish to install a non-Debian-packaged Python package,
    create a virtual environment using python3 -m venv path/to/venv.
    Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
    sure you have python3-full installed.

    For more information visit http://rptl.io/venv

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.
------------------------------------------------------------------------------------------------
Estoy haciendo una instalación desde cero de Weewx, ya en principio va todo funcionando (en local) pero para subir las plantillas al servidor donde alojo el dominio me exigen que sea SFTP a partir del 1 de enero.

EDITO:
Con:
pip install pysftp --break-system-packages

Parece que se ha instalado, con un monton de advertencias...

Despues un:
/home/weewx/bin/wee_extension --install weewx-sftp.zip

Y ya en principio sube la plantilla a un apartado de prueba de la web via SFTP ;)
Título: Re:SFTP
Publicado por: ogalvan en 27 de Diciembre del 2023, 20:34:01 pm
A ver si alguien me puede echar una mano, creo que el problema debe estar en la extensión esta de SFTP.

(Ya sé los LOG´s... no encuentro donde se genera ahora el log, hice la instalación con setup.py, no modifiqué las rutas ni nada y tampoco veo el servicio de rsyslog, no sé si tendrá que ver algo que sea Pi OS "LITE" )

El caso que los ficheros de la plantilla se suben correctamente cada 5 minutos al hosting y veo que así es conectado via SFTP y viendo el contenido de la carpeta y fecha/hora de los ficheros (estoy con la plantilla de Belchertown).

De manera local en el navegador veo correctamente que cada 5 minutos la web se actualiza, sin embargo en mi página web tarda 10 minutos (he hablado con los del hosting y está todo correcto).

¿Se os ocurre alguna idea?  He probado varios navegadores pero no es eso.
Título: Re:SFTP
Publicado por: jmsolher en 11 de Febrero del 2024, 20:27:04 pm
A ver si alguien me puede echar una mano, creo que el problema debe estar en la extensión esta de SFTP.

(Ya sé los LOG´s... no encuentro donde se genera ahora el log, hice la instalación con setup.py, no modifiqué las rutas ni nada y tampoco veo el servicio de rsyslog, no sé si tendrá que ver algo que sea Pi OS "LITE" )

El caso que los ficheros de la plantilla se suben correctamente cada 5 minutos al hosting y veo que así es conectado via SFTP y viendo el contenido de la carpeta y fecha/hora de los ficheros (estoy con la plantilla de Belchertown).

De manera local en el navegador veo correctamente que cada 5 minutos la web se actualiza, sin embargo en mi página web tarda 10 minutos (he hablado con los del hosting y está todo correcto).

¿Se os ocurre alguna idea?  He probado varios navegadores pero no es eso.
yo lo he dejado y he optado por las copias incrementales y RSYNC con túnel SSH. Es más sencillo pero tiene la particularidad de que el servidor remoto debe aceptar conexiones SSH sino, tampoco va a funcionar.