Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - jmsolher

Páginas: 1 2 [3] 4 5 ... 7
31
WeeWX / Re:Tema para especialistas en BBDD weewx
« en: 11 de Febrero del 2020, 22:16:38 pm »
Comparte el script, compañero😉😉😉
Hola jantoni,
por supuesto aquí tenéis el script. A mi me ha  funcionado a la primera sin problemas, pero no me hago responsable si otro lo intenta y le estropea la base de datos eh?  8)
Las bases de datos que han sido  unidas tras el uso de este script pertenecen a la versión de WeeWX 3.9.2Pasos que he seguido
  • parar WeeWX con
Código: [Seleccionar]
sudo /etc/init.d/weewx stop
  • realizar una copia de seguridad de la base de datos que está actualmente en ejecución. Nos colocamos en la ruta
Código: [Seleccionar]
/var/lib/weewx/ y desde ahí renombramos con
Código: [Seleccionar]
mv weewx.sdb weewx_old.sdb
  • crear en
Código: [Seleccionar]
/home/pi/ con
Código: [Seleccionar]
sudo nano /home/pi/unirbd.py un archivo nuevo que contenga este script
Código: [Seleccionar]
import sqlite3
def number_columns(table_name):
    db_2020 = sqlite3.connect('/home/pi/weewx2020.sdb')
    db_2020.row_factory = sqlite3.Row
    db_cursor = db_2020.cursor()
    db_cursor.execute("SELECT * FROM " + str(table_name))
    row_1 = db_cursor.fetchone()
    db_cursor.close()
    return row_1.keys() 

db_2019 = sqlite3.connect('/home/pi/weewx2019.sdb')
db_2020 = sqlite3.connect('/home/pi/weewx2020.sdb')

b_cursor = db_2020.cursor()
b_cursor.execute('SELECT name FROM sqlite_master WHERE type ="table" ')
output = b_cursor.fetchall()

a_cursor = db_2019.cursor()

for row in output:
    print("Table name: " + str(row[0]))
    columnNames = number_columns(str(row[0]))
    ques = []
    ques = ["?"] * len(columnNames)  # Generate list [?, ?, ?, ?,........till length equals length of columnNames[1:]
    ques = ",".join(ques)  # Generate string "?,?,?,?,?........"
    columnNames = ",".join(columnNames)  # Generate string "col1, col2, col3............"
    b_cursor.execute('SELECT * FROM ' + str(row[0]))
    rows = b_cursor.fetchall()
    for item in rows:
        #print(item)
        #print(columnNames)
        #print(ques)
        #print('INSERT or IGNORE INTO {0}({1}) VALUES ({2})'.format(str(row[0]), columnNames, ques))
        a_cursor.execute('INSERT or IGNORE INTO {0}({1}) VALUES ({2})'.format(str(row[0]), columnNames, ques), item)

db_2019.commit()
a_cursor.close()
b_cursor.close()
   
  • desde el terminal ejecutamos el script con
Código: [Seleccionar]
sudo python /home/pi/unirbd.py y  en unos segundos debería obrar su magia. Tras la unión de ambas bases de datos movemos la  resultante hasta
Código: [Seleccionar]
/var/lib/weewx/weewx.sdb procurando poner el nombre original. En esta ruta ahora tendremos
Código: [Seleccionar]
weewx.sdb y
Código: [Seleccionar]
weewx_old.sdb
  • arrancar de nuevo WeeWX con
Código: [Seleccionar]
sudo /etc/init.d/weewx start y esperar al siguiente ciclo de escritura en la base de datos para comprobar que todo ha ido bienExplico un poco el contenido del script
como veis de lo que se trata es de unir dos bases de datos, una de 2019 y otra de 2020 (en mi caso la de 2019 iba desde el 17 de junio al 31 de diciembre y la de 2020 iba desde el 1 de enero hasta la fecha en la que hago la unión de ambas) por lo que debo conseguir una base de datos que recoja el periodo desde el 17 de junio de 2019 a la fecha actual, ordenando todos los registros por la clave primaria que en este caso es dateTimePara este escript he renombrado ambas bases de datos. La de 2019 la he llamado weewx2019.sdb y la de 2020 weewx2020.sdb para que esté más claro. Ambas bases de datos las he colocado en misma ruta donde he creado el script.

El script comienza llamando a sqlite3  por lo que debereis comprobar que lo tenéis instalado previo a su ejecución. Si no está instalado simplemente con sudo apt-get install sqlite3 solucionamos este paso. Tras la instalación un sudo apt-get update && sudo apt-get upgrade no vendría mal. Tras la importación de sqlite3, y si esta es exitosa, identifica las columnas (entidades) de las tablas que intervienen en el proceso. Una vez identificadas las entidades establece las conexiones entre ambas bases de datos. En este paso identificará las tablas que corresponden a cada base de datos.

Con toda esta información lo siguiente es definir la base de datos en la que se hará el volcado; en mi caso quiero que se haga en la de 2019 por lo que apunto a ella con a_cursor = db_2019.cursor () Tras este punto comienza el proceso.

32
WeeWX / Re:Tema para especialistas en BBDD weewx
« en: 11 de Febrero del 2020, 07:56:20 am »
Hola
retomo este hilo. Disculpad que no haya podido comentar antes mi resultado uniendo las dos bases de datos pero solamente quería decir que tras mucho trastear con SQL tuve que abandonar porque me fue totalmente imposible hacer una unión correcta (ya sabéis, que las dos bases de datos copiaran sus tablas a la perfección sin errores, etc etc etc..) finalmente conseguí mi propósito con un pequeño script en Python que realiza la operación sin problemas consiguiendo una única base de datos limpia con clave primaria sin errores (dateTime) y todos los registros de las tablas volcados consecutivamente y sin errores en aquellos que sean NULL (vacíos)
saludos.

33
WeeWX / Re:Tema para especialistas en BBDD weewx
« en: 12 de Enero del 2020, 21:02:10 pm »
Aún no me he 'atrevido' a hacer el volcado de la vieja base de datos en la nueva. Me da cierto reparo pensar que pueda ocurrir alguna inconsistencia y eche por tierra todo el proceso teniendo que volver a reinstalar y empezar de nuevo, aunque por otra parte, no tendré más remedio que armarme de valor  ::) y probar si quiero tener todos los registros en una misma base de datos. Si lo consigo dejaré por aquí los pasos y resultados.

un saludo.

34
WeeWX / Re:Tema para especialistas en BBDD weewx
« en: 09 de Enero del 2020, 17:18:01 pm »
Holauna cuestión rápida ¿cómo puedo añadir registros a mi actual base referidos al año pasado? lo pregunto porque tras el 'apagón' de estos días he estado 4 días sin datos (los primeros del año) hasta que ha empezado a funcionar la cosa pudiendo recuperar, hoy día 9, los registros guardados en la Davis desde el día 4. El tema es que tengo la BBDD 'antigua' la del año pasado en copia de seguridad y me gustaría poder añadir todos sus registros a esta nueva BBDD. ¿es posible?

35
holaya puedo, de nuevo, utilizar RSYNC de forma habitual a como venía usándolo antes del 'apagón'  :; Estos son los pasos que he seguido para volver a recuperarlo.

  • he modificado el archivo /etc/ssh/ssh_config y he añadido como Host la IP del servidor. He añadido el User (usuario principal no root, es decir, el usuario de la Raspberry) y el IdentityFile (la ruta donde se encuentra la clave pública generada; esta ruta es del tipo /home/usuario_no_root/.ssh/id_rsa). Tras estos cambios es conveniente reiniciar el servicio ssh o, en su defecto, la propia Raspberry.
  • tras estos cambios al principio no noté nada y la cosa seguía igual. Buscando en foros y grupos de internet encontré una solución que me funcionó. Indiqué manualmente que aceptara el Host de destino para el usuario principal que utiliza crontab (que es desde donde llamo al script que utiliza RSYNC para hacer las copias de seguridad en el servidor remoto)  con el comando sudo -u cronuser HOME=/home/usuario_principal_no_root ssh usuario_remoto@ssh_IP_remota Tras ésto me pidió que confirmara el Host remoto, tras hacerlo se conectó directamente a él.
  • de esta manera probé el script que tengo de backup con RSYNC tanto como usuario principal no root como usuario root y funcionó a la primera.  ::)

36
holame está sucediendo un hecho extraño. Hace un par de días tuve que reinstalar weewx debido a un error en la fecha (estuve cambiando unas cosillas y sin querer cambié la fecha del sistema a 04-01-2020 que se traduce por 1 de abril de 2020 y no 4 de enero de 2020 como pretendía). Tras ese error weewx empezó a hacer cosas raras hasta que me di cuenta. La base de datos no se actualizaba (evidente) la plantilla que subía a mi servidor hacía cosas 'extrañas' debido a ese cambio de fecha en el sistema que también la descolocó... etc...

Opté por cambiar de nuevo la fecha en el sistema y poner la correcta pero todo fue en vano. La cosa seguía igual. Tras varios intentos opté por desinstalar todo y volver a empezar de cero. Aquí viene el problema.

Cuando todo volvía a la normalidad, descubrí que RSYNC no enviaba vía SSH a mi servidor la copia de /html por lo que la web no funcionaba. Sí funcionaba todo lo demás, Apache...etc pero no RSYNC. Probé a conectarme al servidor vía SSH con la publick key que había creado y me conectaba a la primera. También traté de añadir el hosting a la lista de hosts de confianza de SSH pero nada; RSYNC seguía sin hacer su labor. El mensaje de error que me salta es este
Código: [Seleccionar]
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(235) [sender=3.1.3]
He googleado por ahí y he visto que a más gente le ha pasado un error similar pero las soluciones que les ofrecen a mi no me funcionan.
¿A alguien más le ha pasado lo mismo?el tema es que no tengo acceso a la web (porque no se actualiza) y, por descontado, tampoco sube la plantilla a meteoclimatic.

saludos.

37
Repito que no debes preocuparte y menos por temas de IP... cualquiera que tenga un nombre de dominio asociado a una IP, que es como funciona la web está expuesto a que TODO el mundo sepa su IP y eso ocurre en cualquier lugar.

Cualquier máquina conectada a internet tiene una IP (tu PC, el mío, el móvil, WeatherLink IP etc etc) y eso también va por los servidores que pueda haber en esas máquinas.

En la red (internet) todas las máquinas se comunican entre sí por su IP, el nombre de dominio asociado a la IP de una máquina (como puede ser una raspi) en la cual está funcionando un servidor web necesita que estén vinculados IP del servidor y nombre de dominio. De eso se encargan los servidores DNS (Domain Name System) que son como agendas donde están asociadas IPs y sus nombres de dominios.

Piensa en ello como si fuese una agenda de móvil, sería imposible saber el número uno a uno de tus contactos de móvil (si sólo tienes 4 ó 5 no  *+* ) pero si son cientos o miles se tienen que asociar a nombres para ser más fáciles de recodar. En la agenda de un móvil tú le das al nombre y el móvil llama a ese número. En tu PC, por ejemplo, cuando entras a meteoclimatic.net tu navegador visita un servidor DNS que le diga qué IP tiene meteoclimatic.net para conectar con él a través de su IP. Todo esto es a grandes rasgos cómo funciona pero puede ser más compleja la cosa y llevar varios pasos más.

Si abres cualquier consola de windows o de Linux y lanzas un ping a un nombre de dominio te saldrá su IP por lo que cualquiera, sabiendo el nombre del dominio puede saber su IP y eso no tiene nada que ver con qué empresa tengas contratado el dominio, ni en qué continente esté.

Hay maneras de "ofuscar" la IP haciendo, por ejemplo, una redirección de dominio pero eso ya implica tener unos conocimientos.

Con todo esto espero haberte aclarado que lo más importante no es quien tenga tu nombre de dominio en sus DNS, si no cómo tengas protegido tu servidor web ya que cualquiera puede saber su IP.

No tiene que pasar nada, y sobre todo para ver páginas meteorológicas como weewx. Otra cosa es que en tu servidor tengas datos de clientes, tienda online etc etc en cuyo caso sería mejor que lo tuvieras todo contratado con un Hosting profesional.

No tengas miedo que no tiene porque pasar nada.

saludos
Gracias jmviper,
me has aclarado bastante mis dudas.  plau2
Saludos.

38
En principio no hay problema. WHOIS que es la base de datos de propietarios de dominios siempre ha sido abierta para consulta. Ahora creo que en la UE ya no es así pero en EEUU sigue funcionando WHOIS.

No sé si te refieres a eso o a que si ellos pueden acceder a los datos de tu servidor web (en tu caso sería la raspi). Ellos solamente tendrían tu IP pero no los datos de la raspi.
hola, buenos díasme refería más exactamente al 'cuidado' que deben tener estas empresas con datos como nuestra IP. Acceso protegido a sus bases de datos de IPs, qué ocurre si hay un acceso no autorizado, a quién reclamamos nosotros desde Europa... etc... como ves no entiendo muy bien cómo funcionan estos temas y tengo más incertidumbres que certidumbres  ::)

39
WeeWX / Re:Tema para especialistas en BBDD weewx
« en: 01 de Enero del 2020, 16:41:23 pm »
Hola

Yo tengo weewx grabando a base de datos y generando los archivos del skin cada minuto casi dos años y aparentemente no encuentro nada raro en la SD ni en el funcionamiento del SO...

Puedes hacer que weewx cree la base de datos en otro lugar como un pendrive externo configurándolo en weewx.conf


[DatabaseTypes]
   
    # Defaults for SQLite databases
    [[SQLite]]
        driver = weedb.sqlite
        # Directory in which the database files are located
        SQLITE_ROOT = /var/lib/weewx

En la parte en negrita pones la dirección del pendrive y ten en cuenta que tendrá que ser montado al iniciar la raspi.
Gracias!quizás es probable que no sea tema de la SD, no sé, la verdad es que me está dando algún que otro dolor de cabeza el asunto pero ya no sé qué pensar.... de todas formas probaré tu consejo.

40
¡feliz año nuevo!
no es algo que me corra prisa. Actualmente tengo una web (en un server de pago con dominio de pago...etc) pero sí quiero empezar a cacharrear para ya este año ponerla en mi Raspberry y ahorrar unos eurillos. Cualquier consejo será bien recibido.

Respecto del link a Change IP, no conocía esa empresa. Veo que está fuera de Europa ¿hay algún problema con el tema de la protección de datos, etc? tampoco estoy muy puesto en el tema de DDNS (en cuanto a empresas que se dediquen a dar el servicio me refiero)


 

41
Hola
hace tiempo que le estoy dando vueltas a tener mi propio servidor con la plantilla de mi estación y que sea de acceso público vía internet. En Google he encontrado muchos tutoriales pero no acabo de entender muy bien el proceso. ¿Hay alguien que tenga su estación online con un servidor alojado en la propia Raspberry Pi y que pueda explicar su experiencia paso a paso?
gracias y saludos.

42
WeeWX / Re:Tema para especialistas en BBDD weewx
« en: 31 de Diciembre del 2019, 17:28:33 pm »
hola
continuando un poco el tema de este hilo y evitar abrir o duplicar otro, me gustaría saber si es posible (explicado paso a paso) que WeeWX haga la mayor parte de sus operaciones en un USB externo (actualizar la BD básicamente y otras operaciones que requieran escritura/lectura de forma asidua ) y así reducir los ciclos de escritura/lectura en la tarjeta SD.

Lo pregunto porque tras seis meses de uso 24/7 de la Raspberry, está empezando a comportarse de forma 'extraña' (pierde la conexión del router de forma imprevisible tardando en volver a estar online minutos o incluso horas) y he pensado que puede ser cosa de la propia tarjeta SD que aunque sólo está al 10% quizás la esté penalizando tanto acceso de escritura/lectura.

saludos.



43
Forum General / Re:Auditorías de calidad Meteoclimatic
« en: 28 de Diciembre del 2019, 18:45:36 pm »
hola,
el 14 de octubre subí mi estación para iniciar el proceso de auditoría pero no he visto cambio alguno. ¿existe algún retraso en las auditorías?

44
WeeWX / Re:SFTP
« 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.

45
WeeWX / Re:SFTP
« 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

Páginas: 1 2 [3] 4 5 ... 7