Meteoclimatic
Software => WeeWX => Mensaje iniciado 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.
-
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
-
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.
-
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
-
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.
-
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.
-
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.
-
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...
-
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]] ?
-
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.
-
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 .
-
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 ?)
-
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]
-
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
-
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
-
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.
-
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.
-
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 ;)
-
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.
-
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.