Software > WeeWX
conexión raspi a estación
jmviper:
Bueno veamos
No sé si las raspis vienen con ftp instalado por defecto, lo comprobamos con dpkg --get-selections | grep ftp si aparece ftp install es que ya está instalado y si no está pues ponemos sudo apt-get install ftp.
En nuestro ftp en el directorio raíz creamos una carpeta llamada weewxbackup y también otra llamada igualmente en /home/pi en la raspi
Creamos un archivo en /home/pi llamado por ejemplo weewxbackup.sh y copiamos este código:
--- Código: ---#!/bin/bash
SERVIDOR='nombreoIPdelservidor'
USUARIO='usuario'
PASS='contraseña'
RUTA='' #Raíz del FTP. Ponerla siempre entre las comillas
/etc/init.d/weewx stop
tar -czf /home/pi/weewxbackup/weewxbackup.tar.gz -C /etc/weewx weewx.conf -C skins/Standard skin.conf -C /var/lib/weewx weewx.sdb
/etc/init.d/weewx start
ftp -n $SERVIDOR <<FINAL
quote USER $USUARIO
quote PASS $PASS
binary
put /home/pi/weewxbackup/weewxbackup.tar.gz $RUTA/weewxbackup/weewxbackup.tar.gz
quit
FINAL
exit 0
--- Fin del código ---
Le damos permisos de ejecución al archivo con sudo chmod +x weewxbackup.sh y lo cambiamos a propiedad de root para que no necesite de permisos para ejecutarse en el crontab con sudo chown root:root weewxbackup.sh
Por último lo probamos ejecutando sudo /home/pi/weewxbackup.sh
Miramos si ha creado el tar en /home/pi/weewxbackup. Si la base de datos de weewx es grande tardará algo en ejecutarse.
Si ha creado el archivo miramos en el servidor FTP si también lo ha subido a la carpeta que creamos anteriormente llamada weewxbackup
Puede que el servidor FTP tenga la raíz en /public_html o en /www si es así ponemos ese nombre de la carpeta raíz en la variable RUTA al principio del script.
Si se ha subido y todo va bien ya es cosa de crear el crontab. Ponemos crontab -e y dentro de él añadimos esta línea:
2 0 * * * /home/pi/weewxbackup.sh
Se ejecutará todos los días a las 0:02
Guardamos el crontab con CTRL + O y después CTRL + X para salir si usamos nano
Dejo el script en un adjunto. Si no va bien reporta si te sale algún fallo.
Chema:
buenos días,
gracias por tu trabajo se agradece la ayuda para los que no somos 'expertos'. Lo echaré un ojo con tranquilidad y te confirmo si he tenido éxito con su implementación.
un saludo.
Chema:
--- Cita de: jmviper en 04 de Mayo de 2019, 18:43:55 ---
#!/bin/sh
SERVIDOR='nombreoIPdelservidor'
USUARIO='usuario'
PASS='contraseña'
RUTA='' #Raíz del FTP. Ponerla siempre entre las comillas
/etc/init.d/weewx stop
tar -czf /home/pi/weewxbackup/weewxbackup.tar.gz -C /etc/weewx weewx.conf -C skins/Standard skin.conf -C /var/lib/weewx weewx.sdb
/etc/init.d/weewx start
ftp -n $SERVIDOR <<FINAL
quote USER $USUARIO
quote PASS $PASS
binary
put /home/pi/weewxbackup/weewxbackup.tar.gz $RUTA/weewxbackup/weewxbackup.tar.gz
quit
FINAL
exit 0
[/code]
--- Fin de la cita ---
buenos días,
pues tras intentarlo varias veces no lo he conseguido. Me da este mensaje
--- Código: ---pi@raspberrypi:~ $ sh weewxbackup.sh
: not found.sh: 2: weewxbackup.sh:
: not found.sh: 7: weewxbackup.sh:
Usage: /etc/init.d/weewx {start|stop|status|restart|reload}
: not found.sh: 9: weewxbackup.sh:
tar: weewx.sdb\r: No se puede efectuar stat: No existe el fichero o el directorio
tar: Se sale con estado de fallo debido a errores anteriores
: not found.sh: 11: weewxbackup.sh:
Usage: /etc/init.d/weewx {start|stop|status|restart|reload}
: not found.sh: 13: weewxbackup.sh:
weewxbackup.sh: 14: weewxbackup.sh: ftp: not found
--- Fin del código ---
Chema:
bueno he realizado algún cambio en el script, principalmente en la línea 1
--- Código: ---#!/bin/bash
--- Fin del código ---
tras ésto he vuelto a ejecutar el script con bash y obtengo este resultado
--- Código: ---pi@raspberrypi:~ $ bash weewxbackup.sh
[....] Stopping weewx (via systemctl): weewx.service==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Se requiere autenticación para detener 'weewx.service'.
Multiple identities can be used for authentication:
1. ,,, (pi)
2. root
Choose identity to authenticate as (1-2): 1
Password:
==== AUTHENTICATION COMPLETE ===
. ok
[....] Starting weewx (via systemctl): weewx.service==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Se requiere autenticación para iniciar 'weewx.service'.
Multiple identities can be used for authentication:
1. ,,, (pi)
2. root
Choose identity to authenticate as (1-2): 1
Password:
==== AUTHENTICATION COMPLETE ===
. ok
weewxbackup.sh: línea 14: ftp: no se encontró la orden
pi@raspberrypi:~ $
--- Fin del código ---
ahora me crea el tar en el directorio pero no me lo sube por FTP al servidor. He revisado los parámetros introducidos en weewxbackup.sh y parecen correctos. En mi caso la raiz está www entiendo, entonces, que tengo que poner 'www'
saludos.
jmviper:
Bueno, primeramente decir que yo no estoy probando con una Raspberry sino con una Orange y que no soy usuario pi y segundo decir que no uso para detener weewx /etc/init.d/weewx stop sino systemctl stop weewx.service porque tengo weewx funcionando de otra manera.
Dicho esto, no soy un experto en Linux, y lo que me sé es gracias a trastear con weewx en estos cacharros (sentido cariñoso porque es la leche lo que se puede hacer con ellos *+*)
Al no tener la Raspi no sé si funciona con sh o con bash. En mi Orange funciona con sh, así que si te funciona con bash lo has hecho muy bien cambiando esa primera línea.
Ejecuta el script con sudo delante y una vez que funcione como se espera hay dos posibilidades de ejecutarlo con crontab (bueno, deben de haber más pero estas dos son las que me sé), o cambiar el bash a usuario root con sudo chown root:root weewxbackup.sh o no hacer ese cambio y ponerlo en el crontab de root sudo crontab -e.
Supongo que el primero será el más fácil para no tener que estar con dos crontabs, el de usuario y el de root.
Actualizo lo que digo en el mensaje anterior.
Mis disculpas pero no tengo Raspi ni soy usuario pi para probar estas cosas... yo siempre actúo como root… en Windows igual.... administrador antes que usuario simple. Donde si le veo más la utilidad a lo de ser simple usuario es en Android... hay gente que rootea Android y no sabe a lo que se expone, si se rootea se hace con un fin y sabiendo lo que se hace.
A ver si va funcionando el script.
Navegación
[#] Página Siguiente
[*] Página Anterior
Ir a la versión completa