Autor Tema: Alternativas y problemas para actualizar"skin" de weewx  (Leído 1925 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado kocher

  • Moderador Global
  • Hero Member
  • ******
  • Mensajes: 960
    • Ver Perfil
    • Meteo San Sebastian - Arriola
  • Estación: San Sebastian, Arriola ESEUS2000000020018A
Alternativas y problemas para actualizar"skin" de weewx
« en: 31 de Enero del 2023, 14:09:37 pm »
Objetivo: Automatizar atualización "skin"de weewx cada x minutos:  http://kocher.es/weewx/

Entorno: Linux Ubuntu (22.04.1.LTS) corriendo en un Pc de arranque dual Windows10 / Linux (prácticamente arranco siempre en Linux).

Problema: Durante años he estado utilizando el "skin" de Belchertown en un miniPC que pasó a mejor vida; el caso es que se actualizaba perfectamente con Mosquitto (cada 2,5 segundos y con Rsync cada 5 minutos); pues bien, en mi nuevo Pc, no funciona Rsync; puesto en contacto con mi "hosting", me explican que, desde una máquina linux, no se puede utilizar Rsync con un servidor Windows (lo contraté así por mi ignorancia). El caso es que en el miniPc Linux si funcionaba.
Llegados a este punto, me he planteado las siguientes opciones:

Posibles Soluciones:

1) Cambiar mi servidor a Linux: sería lo ideal pero a costa de perder archivos web actuales (dispongo de copia), bases de datos, configuración del correo .. un lío, por lo
que, en principio queda deshechada.

2) Si pudiera ver el directorio Linux actual en mi red local (Ethernet), sería muy sencillo actualizar el "skin" con herramientas que tengo; el problema es que
no veo el equipo Linux en la red local (Ethernet).

3) Actualizar la página con un "script" sh (el equivalente al bat de windows) y, si funcionara, crear un "cron" para automatizar la subida de la página.

En mi modesta opinión, la mejor solucón seria la número 2; pero en el caso de ser imposible, hay que  pasar a la número 3.
En mi imocencia he comenzado por crear un archivo .sh(con permisos de root) para conectar con mi servidor:
"miFTP.sh" ftp -s sube_wxsim.txt ftp.xxx.com (intenta conectar al servidor)

El archivo "sube_wxsim.txt"al que invoca el anterior, podía ser del tipo:

miusuario
micontraseña
cd www (incia en la raíz del servidor)
lcd /var/www/html/weewx/weather_en (cambia al directorio local donde se encuentran los archivos a subir)
mput *.html
mput *.json
cd .. (devuelve el servidor a la carpeta raíz
quit (se cierra la conexión con el servidor)


El caso es que no funciona; la respuesta es: ftp can't lookup 'sube_wxsim.txt': Name or service not know

Este es el "resumen" de mis objetivos y frustaciones je je

Cualquier opinión o sugerencia, será muy bienvenida





« Última modificación: 31 de Enero del 2023, 14:22:51 pm por kocher »



“La mente es como un paracaídas… Solo funciona si la tenemos abierta”.

“La formulación de un problema, es más importante que su solución”.

“Si buscas resultados diferentes, no hagas siempre lo mismo" . -Albert Einstein-

Desconectado jmviper

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 4.403
  • "Vortex Complex"
    • Ver Perfil
    • www.meteoarchena.es
  • Estación: Archena - ESMUR3000000030600B
Re:Alternativas y problemas para actualizar"skin" de weewx
« Respuesta #1 en: 31 de Enero del 2023, 16:32:44 pm »
Hola de nuevo kocher

Siguiendo tus andanzas jejeje

Por lo que veo el poner las órdenes de ftp en un archivo de texto y ejecutarlo con ftp -s es solo en Windows el cual tiene también comando ftp pero no se utiliza exactamente como el de Linux, por lo menos no tienen los mismos parámetros.

Para Linux tendrías que poner en el bash a ejecutar:

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

ftp -n ftp.xxx.com <<EOF
user usuario contraseña
binary
cd www
lcd /var/www/html/weewx/weather_en
mput *.html
mput *.json
cd ..
quit
EOF

De todas formas si no recuerdo mal esos comandos son solo para ftp sin seguridad (sin SSL/TLS). Si tu servidor va con seguridad tendrías que usar algún cliente Linux que la tuviese como por ejemplo lftp

Las otras dos soluciones habría que investigarlas.



Archena, Valle de Ricote (Murcia). 120 msnm. 19.622 hab.
Davis Vantage Pro2 Plus

www.meteoarchena.es

Desconectado jantoni

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 3.789
    • Ver Perfil
  • Estación: ESMAD2800000028522A
Re:Alternativas y problemas para actualizar"skin" de weewx
« Respuesta #2 en: 31 de Enero del 2023, 19:00:31 pm »
¿Y por qué no hacer que se vean el linux y el windows?

Tienes NFS o SMB para ello.

Si el servidor es windows, es difícil que no tenga SMB.....lo instalas en Linux, lo configuras con los permisos de lectura y escritura correcta y lo tendtrás como un disco local.

O también, en Linux, instalas lo que falte de NFS, por lo general nfs-common, instalas NFS para Windows, que lo hay y recuerdo que es de la propia microsoft, y también tienes acceso a los discos remotos como si fueran locales. Eso si, tras la configuración pertinente.

Yo me quedo con NFS es robusto al 200%

Desconectado kocher

  • Moderador Global
  • Hero Member
  • ******
  • Mensajes: 960
    • Ver Perfil
    • Meteo San Sebastian - Arriola
  • Estación: San Sebastian, Arriola ESEUS2000000020018A
Re:Alternativas y problemas para actualizar"skin" de weewx
« Respuesta #3 en: 31 de Enero del 2023, 19:47:10 pm »
Muchas gracias a jmviper y jantoni     apla3

Con estas orientaciones, me pongo a probar las soluciones.

- Haré los cambios en el archivo sh

- Si, tengo samba, pero voy a intentar instalar NFS en Windows y en Linux

Ya os contaré los progresos  :;





“La mente es como un paracaídas… Solo funciona si la tenemos abierta”.

“La formulación de un problema, es más importante que su solución”.

“Si buscas resultados diferentes, no hagas siempre lo mismo" . -Albert Einstein-

Desconectado kocher

  • Moderador Global
  • Hero Member
  • ******
  • Mensajes: 960
    • Ver Perfil
    • Meteo San Sebastian - Arriola
  • Estación: San Sebastian, Arriola ESEUS2000000020018A
Re:Alternativas y problemas para actualizar"skin" de weewx
« Respuesta #4 en: 31 de Enero del 2023, 20:46:54 pm »
Uffff

He comenzado con la solución de jmviper y despues de algunos fallos (míos), por fin ha funcionado perfectamente.
Para niquelar el asunto, me interesaría crear un "cron" en Linux para automatizar el trabajo.

Siguiendo las indicaciones de jantoni, me dispongo a instalar NFS en Windows y en Linux; a ver si consigo que aparezca
la máquina en la red local.

Sin vosotros no hubiera llegado a ninguna parte.

Muchísimas gracias

Saludos desde San Sebastián



“La mente es como un paracaídas… Solo funciona si la tenemos abierta”.

“La formulación de un problema, es más importante que su solución”.

“Si buscas resultados diferentes, no hagas siempre lo mismo" . -Albert Einstein-

Desconectado kocher

  • Moderador Global
  • Hero Member
  • ******
  • Mensajes: 960
    • Ver Perfil
    • Meteo San Sebastian - Arriola
  • Estación: San Sebastian, Arriola ESEUS2000000020018A
Re:Alternativas y problemas para actualizar"skin" de weewx
« Respuesta #5 en: 01 de Febrero del 2023, 08:49:57 am »
Bueno, continúo con la matraca

Me he estado leyendo todo lo que he encontrado sobre establecer un "cron" en Linux.

He comprendido lo de los cinco *
Si no me equivoco, si quisiera repetir el trabajo cada 5 minutos, debería ser: */5 * * * *

El problema que no acabo de solucionar o no acabo de entender, es ¿donde colocar esto?:

Supongamos que tengo un archivo llamado "ActualizarMiWeb.sh" que funciona perfectamente cuando lo ejecuto de forma manual; ahora ¿como lo automatizo?; ¿hay que poner ese código en el archivo sh? o, quizás hay que crear otro archivo diferente que se debe guardar en alguna carpeta específica ...

Vamos que no me aclaro y por mucho que miro, sigo sin aclararme je je  :;





“La mente es como un paracaídas… Solo funciona si la tenemos abierta”.

“La formulación de un problema, es más importante que su solución”.

“Si buscas resultados diferentes, no hagas siempre lo mismo" . -Albert Einstein-

Desconectado jantoni

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 3.789
    • Ver Perfil
  • Estación: ESMAD2800000028522A
Re:Alternativas y problemas para actualizar"skin" de weewx
« Respuesta #6 en: 01 de Febrero del 2023, 09:58:36 am »
Hola, a ver si te puedo ayudar, aunque con el móvil es complicado.

El cron hay varias maneras de editarlo

Puedes editar lo que va a hacer cron, bien en el fichero /etc/crontab o bien en el directorio /etc/cron.d

El formato es siempre el mismo

También puedes editar un fichero solo para el usuario.

Pero lo habitual y más sencillo es usar /etc/crontab

En el momento que edites este fichero y lo grabes, el servicio crond lo analizará para ser ejecutado a las horas indicadas en el mismo.

Luego desde casa te podré responder mejor... Suplicio escribir en el móvil

Desconectado kocher

  • Moderador Global
  • Hero Member
  • ******
  • Mensajes: 960
    • Ver Perfil
    • Meteo San Sebastian - Arriola
  • Estación: San Sebastian, Arriola ESEUS2000000020018A
Re:Alternativas y problemas para actualizar"skin" de weewx
« Respuesta #7 en: 01 de Febrero del 2023, 14:44:51 pm »
Muchas gracias jantoni

Sigo sin enterarme mucho; creo que me complico la vida con las cosas más sencillas je je

Necesito un tutorial para burros, como sueles decir tu  *-*




“La mente es como un paracaídas… Solo funciona si la tenemos abierta”.

“La formulación de un problema, es más importante que su solución”.

“Si buscas resultados diferentes, no hagas siempre lo mismo" . -Albert Einstein-

Desconectado jantoni

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 3.789
    • Ver Perfil
  • Estación: ESMAD2800000028522A
Re:Alternativas y problemas para actualizar"skin" de weewx
« Respuesta #8 en: 01 de Febrero del 2023, 15:08:24 pm »
Dentro de una hora te hago un tuto para poner ese script en el cron

Hoy tengo el día súper pillado

¿Quién dijo que los jubilados tenían tiempo? Mentiroso *+* *+*

Uy, que a alguien no le gusta como respondo, perdón  *+*

Desconectado jmviper

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 4.403
  • "Vortex Complex"
    • Ver Perfil
    • www.meteoarchena.es
  • Estación: Archena - ESMUR3000000030600B
Re:Alternativas y problemas para actualizar"skin" de weewx
« Respuesta #9 en: 01 de Febrero del 2023, 15:39:25 pm »
Sin ánimo de influir en el magnífico tuto que hará jantoni  *-* *-* recuerdo una cosa...

Hay en verdad, y que yo sepa tres crontabs. El crontab (de cron, el servicio de Linux equivalente al de tareas programadas de Windows y de tab, pestaña, que significa pestaña de tareas de cron) como he explicado en los paréntesis es el archivo de texto que el servicio cron lee cada minuto para saber si hay alguna tarea que hacer o no (lo he dicho, como creo que funciona, puede que diste algo realmente  *-*).

1.- El que menciona jantoni en /etc/crontab y su directorio cron.d que podría decirse que es de root y del sistema en general ya que en él aparecen tareas de mantenimiento del sistema de diversos programas en general.

2.- crontab -e que se edita tal cual está puesto y es el crontab de usuario (el que esté activo). En él no se podrán ejecutar scripts o archivos que sean de root.

3.- sudo crontab -e o crontab de root si se está como otro usuario que no sea root (sudo delante). Este puede ejecutarlo TODO.

Estos dos últimos con crontab -e se editan, con crontab -l se leen.

He dicho 3 crontabs, pero si hay más usuarios cada uno tendrá el suyo, por lo que pueden haber más.

En el primer crontab hay que poner en la línea de la tarea el usuario que lo ejecuta, cosa que en los otros dos no. Los otros son el crontab de cada usuario que los edita.

Yo personalmente uso sudo crontab -e, tiene permiso para todo y no mete tareas al del primer caso y que es general del sistema.

Lo digo solamente como info, tocar el crontab del sistema por parte de gente inexperta puede dar lugar a malfucionamientos del sistema porque si hay un error podría dar problemas con las tareas programadas del sistema.




Archena, Valle de Ricote (Murcia). 120 msnm. 19.622 hab.
Davis Vantage Pro2 Plus

www.meteoarchena.es

Desconectado kocher

  • Moderador Global
  • Hero Member
  • ******
  • Mensajes: 960
    • Ver Perfil
    • Meteo San Sebastian - Arriola
  • Estación: San Sebastian, Arriola ESEUS2000000020018A
Re:Alternativas y problemas para actualizar"skin" de weewx
« Respuesta #10 en: 01 de Febrero del 2023, 15:46:07 pm »
Gracias a los dos je je

Yo pensaba que era algo más sencillo (mentalidad Windows); por eso, necesito un tutorial para burros jjj








“La mente es como un paracaídas… Solo funciona si la tenemos abierta”.

“La formulación de un problema, es más importante que su solución”.

“Si buscas resultados diferentes, no hagas siempre lo mismo" . -Albert Einstein-

Desconectado jantoni

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 3.789
    • Ver Perfil
  • Estación: ESMAD2800000028522A
Re:Alternativas y problemas para actualizar"skin" de weewx
« Respuesta #11 en: 01 de Febrero del 2023, 16:50:25 pm »
Bueno....ya lo comentaba antes, se puede modificar el cron de diferentes maneras. Jmviper ya lo ha ratificado.

Pero ahora veamos la manera más simple y sencilla, que es toquetear el fichero /etc/crontab que es el cron del sistema.

Con nuestro editor favorito, en mi caso uso nano (los puristas usan vi o vim):

Código: [Seleccionar]
sudo nano /etc/crontab
Y tendremos algo como esto.....en un fichero real, en mi caso de la Orange Pi que controla Weewx:

Código: [Seleccionar]
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#
#
#
# Copia de seguridad de Weewx en disco de red a las 23:57 de cada dia
#57 23   * * *   root    /etc/weewx/backup

# Envía datos a Meteoclimatic cada 5 minutos, empezando en el minuto 1 de cada hora
#1-59/5 *   * * *   root    /root/meteoclimatic/meteoclimatic.sh
#1-59/5 *   * * *   root    python3 /home/weewx/meteoclimatic.py

# Toma una fotografia de la webcam cada 5 minutos
#1-59/5 *   * * *   root    /home/pi/snapshot.sh

# Reboot todos los días a las 2:13 minutos
#13 2    * * *   root    shutdown -r now

# Comprueba cada 5 minutos que la red funcione, si no funciona, reinicia networking o reboot
*/1 * * * * root /home/weewx/checknet

Por supuesto, todas las líneas que comienzan con "#" son comentarios, por lo que la mayoría de las cosas que yo he ido añadiendo, luego las he ido deshabilitando.

De este modo, los primeros 5 datos nos indican el minuto, la hora, el día del mes, el mes y el día de la semana en el que se tiene que ejecutar la orden.

En tu caso, como es cada 5 minutos:

*/5 en el primer dato o columna indica cada 5 minutos. En el mio */1 indica que se ejecute cada minuto un script que tengo preparado para chequear la red.

Esto es la manera más simplificada, el minuto lo podemos convertir de múltiples maneras.....pero no es objetivo de este post.

Si te diré, por si te interesa, que hablando de minutos, o de cualquiera de los otros 4 parámetros, podrías indicar múltiples valores separados por comas.

Por ejemplo:

Código: [Seleccionar]
2,14,23,47 * * * *   root    /home/pi/snapshot.sh
Se ejecutaría los minutos 2, 14,23 y 47 de cada hora.

La sexta columna indica el "propietario que va a ejecutar" la tarea. Si se indica, como en los ejemplos puestos "root", esta tarea se ejecuta con privilegios de root, tanto en el caso de órdenes que se indican en /etc/crontab como en /etc/cron.d. En el caso particular de los crontab de usuario se ejecutarán con los permisos de cada usuario.

Y por último tenemos el comando a ejecutar.

Grabamos y a los pocos segundos el sistema que controla cron comprobará que se ha modificado el fichero. Si hubiera algún error en el fichero se indicará en el log del sistema. Si está todo correcto, se verá la modificación en el log:

Citar
jantoni@orangepipc:~$ sudo tail -f /var/log/syslog
[sudo] password for jantoni:
Feb  1 16:43:01 orangepipc CRON[15633]: (root) CMD (/home/weewx/checknet)
Feb  1 16:43:03 orangepipc CRON[15632]: (CRON) info (No MTA installed, discarding output)
Feb  1 16:44:01 orangepipc CRON[15642]: (root) CMD (/home/weewx/checknet)
Feb  1 16:44:02 orangepipc CRON[15641]: (CRON) info (No MTA installed, discarding output)
Feb  1 16:45:01 orangepipc CRON[15655]: (root) CMD (/home/weewx/checknet)
Feb  1 16:45:01 orangepipc CRON[15654]: (root) CMD (/usr/lib/armbian/armbian-truncate-logs)
Feb  1 16:45:01 orangepipc CRON[15656]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 1 1)
Feb  1 16:45:02 orangepipc CRON[15651]: (CRON) info (No MTA installed, discarding output)
Feb  1 16:46:01 orangepipc CRON[15677]: (root) CMD (/home/weewx/checknet)
Feb  1 16:46:02 orangepipc CRON[15676]: (CRON) info (No MTA installed, discarding output)
Feb  1 16:47:01 orangepipc CRON[15697]: (root) CMD (/home/weewx/checknet)
Feb  1 16:47:02 orangepipc CRON[15696]: (CRON) info (No MTA installed, discarding output)
Feb  1 16:48:01 orangepipc cron[1218]: (*system*) RELOAD (/etc/crontab)
Feb  1 16:48:01 orangepipc CRON[15710]: (root) CMD (/home/weewx/checknet)
Feb  1 16:48:02 orangepipc CRON[15709]: (CRON) info (No MTA installed, discarding output)

Igualmente, las primeras 5 columnas admiten muchas variaciones, pero tampoco es cuestión de liar el tema.

Puedes encontrar más info en cualquier linux:

Código: [Seleccionar]
man 5 crontab
« Última modificación: 01 de Febrero del 2023, 16:53:46 pm por jantoni »

Desconectado kocher

  • Moderador Global
  • Hero Member
  • ******
  • Mensajes: 960
    • Ver Perfil
    • Meteo San Sebastian - Arriola
  • Estación: San Sebastian, Arriola ESEUS2000000020018A
Re:Alternativas y problemas para actualizar"skin" de weewx
« Respuesta #12 en: 01 de Febrero del 2023, 19:58:26 pm »
Muchísimas gracias jantoni

Esmerado tutorial para burros je je

He seguido tus instrucciones y he editado el archivo "/etc/crontab" de esta manera:

# Comprueba cada 5 minutos que se actualiza en la web el skin "weather_en"
*/5 *  * * * root /home/javier/Documents/miftp.sh

Por el momento no ocurre nada y no se produce la actualización; ¿quizás se deba a un problema de rutas?:

El archivo sh se encuentra en : /home/javier/Documents/miftp.sh
el crontab está en: /etc/crontab

No se me ocurre otra causa, ¿ que opinas ?


« Última modificación: 01 de Febrero del 2023, 20:02:27 pm por kocher »



“La mente es como un paracaídas… Solo funciona si la tenemos abierta”.

“La formulación de un problema, es más importante que su solución”.

“Si buscas resultados diferentes, no hagas siempre lo mismo" . -Albert Einstein-

Desconectado jmviper

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 4.403
  • "Vortex Complex"
    • Ver Perfil
    • www.meteoarchena.es
  • Estación: Archena - ESMUR3000000030600B
Re:Alternativas y problemas para actualizar"skin" de weewx
« Respuesta #13 en: 01 de Febrero del 2023, 20:37:33 pm »
Le has dado permisos de ejecución ??

sudo chmod +x /home/javier/Documents/miftp.sh



Archena, Valle de Ricote (Murcia). 120 msnm. 19.622 hab.
Davis Vantage Pro2 Plus

www.meteoarchena.es

Desconectado kocher

  • Moderador Global
  • Hero Member
  • ******
  • Mensajes: 960
    • Ver Perfil
    • Meteo San Sebastian - Arriola
  • Estación: San Sebastian, Arriola ESEUS2000000020018A
Re:Alternativas y problemas para actualizar"skin" de weewx
« Respuesta #14 en: 01 de Febrero del 2023, 20:48:28 pm »
Voy a hacerlo ahora




“La mente es como un paracaídas… Solo funciona si la tenemos abierta”.

“La formulación de un problema, es más importante que su solución”.

“Si buscas resultados diferentes, no hagas siempre lo mismo" . -Albert Einstein-