Meteoclimatic
Software => WeeWX => Mensaje iniciado por: miguelru en 24 de Octubre del 2019, 19:08:08 pm
-
Buenas tardes.
Tengo instalado weewx 3.9.2 en una RPI con Raspbian Buster en pruebas y todo funciona bien excepto que no consigo que escriba los archivos.log en la RAM.
He añadido la linea correspondiente en /etc/fstab:
tmpfs /var/log/ tmpfs defaults,noatime,nosuid,mode=0755,size=20M 0 0
pero entonces no arranca apache2. Tampoco arranca apache2 con el añadido en /etc/init.d/apache2 que indica la wiki (Jantoni) por este problema que se daba en Jessie.
¿Alguna idea de como conseguirlo para no machacar la SD?
Saludos.
-
Hola miguelru
Qué te pone al ejecutar df -h ? Pon el resultado
-
Mas vale tarde...
pi@raspberrypi:~ $ df -h
S.ficheros Tamaño Usados Disp Uso% Montado en
/dev/root 27G 6,2G 19G 25% /
devtmpfs 459M 0 459M 0% /dev
tmpfs 464M 0 464M 0% /dev/shm
tmpfs 464M 13M 451M 3% /run
tmpfs 5,0M 4,0K 5,0M 1% /run/lock
tmpfs 464M 0 464M 0% /sys/fs/cgroup
/dev/sda6 253M 52M 201M 21% /boot
tmpfs 93M 0 93M 0% /run/user/1000
pi@raspberrypi:~ $
-
En realidad la RPI no trabaja con una microSD sino con un pen USB, pero supongo que al final el resultado sera igual, no deja de ser una memoria flash.
Bueno continuaremos mañana.
Gracias.
-
No soy un experto en estas cuestiones de la raspberry y supongo que cada actualización de SO tendrá sus "entresijos" a la hora de montar esas unidades e incluso archivos de configuración en cada distribución etc etc
De lo que se ve del resultado de df -h se ve que no hay montado ningún tmpfs con /var/log (habrá que reiniciar la Raspi?) y le pondría un tamaño de 50M en vez de 20M en esa línea de fstab (size=50M)
Una vez hechos los cambios te debería de salir al reiniciar con df -h ese punto de montaje tmpfs /var/log
Todo esto hay que saber tocarlo porque una configuración mal hecha (y cada dispositivo y SO tienen sus archivos de configuración etc etc) y no te arranca directamente.
Yo personalmente no tengo la Raspberry sino una Orange pi y df -h me pone esto:
root@orangepipc:~# df -h
Filesystem Size Used Avail Use% Mounted on
udev 432M 0 432M 0% /dev
tmpfs 100M 4.0M 96M 4% /run
/dev/mmcblk0p1 7.1G 1.8G 5.3G 25% /
tmpfs 500M 0 500M 0% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 500M 0 500M 0% /sys/fs/cgroup
tmpfs 500M 4.0K 500M 1% /tmp
/dev/zram0 49M 13M 33M 28% /var/log
tmpfs 100M 0 100M 0% /run/user/0
Como ves /var/log lo tengo en la zram que es parecido a tmpfs pero no la misma cosa y viene así por defecto con armbian que es el SO que utilizo.
Con esto, como te he dicho antes, te hago ver que esto es algo más complejo de lo que parece y que cambia entre kernels y SO y es para gente entendida y que sepa lo que está haciendo.
A ver si alguien que sepa sobre todo esto te puede ayudar, a mí no me gusta tocar estas cosas a menos que sea imprescindible por las sorpresas que te puedes llevar.
saludos
-
Si efectivamente si pongo la linea en el ftab se crea el archivo temporal:
pi@raspberrypi:~ $ df -h
S.ficheros Tamaño Usados Disp Uso% Montado en
/dev/root 27G 6,2G 19G 25% /
devtmpfs 459M 0 459M 0% /dev
tmpfs 464M 0 464M 0% /dev/shm
tmpfs 464M 18M 446M 4% /run
tmpfs 5,0M 4,0K 5,0M 1% /run/lock
tmpfs 464M 0 464M 0% /sys/fs/cgroup
tmpfs 20M 204K 20M 1% /var/log
/dev/sda6 253M 52M 201M 21% /boot
tmpfs 93M 0 93M 0% /run/user/1000
pi@raspberrypi:~ $
pero así es cuando no arranca apache2 por lo que no hay pagina web ni plantilla etc.
Gracias de todos modos. Seguiré intentando dar con la solución mientras espero a ver si alguien lo sabe resolver.
Saludos.
-
Un asunto más por no crear otro hilo.
Tengo las estaciones en torno a 4 años en horario local y pretendo cambiarlas a UTC.
Al estar en UTC e importar las BBDD que se generaron con horario local y a pesar de que las BBDD se escriben en unix epoch en ambos casos, resulta que los datos de los archivos NOAA, e imagino que otros archivos, se me desplazan a un día antes. Supongo que es por que el primer día entre las 00:00 que son las 22:00 UTC y las 00:00 UTC se han escrito unos registros en las BBDD que los interpreta como el día anterior. Adjunto archivo.
No se si la solución es borrar los registros de esas 2 horas del primer día en las BBDD o hay una solución mas ortodoxa.
Gracias de antemano.
-
Fácil, aunque puede que no tanto... antes de nada haz copia de seguridad de la base de datos.
La cuestión es que como tú dices weewx guarda los datos en la base de datos en formato unix UTC pero solo en la tabla archive, en las demás tablas (archive_day_rain etc etc) las guarda en la hora que tengas la raspi ya que las máximas/diarias etc las hace en esa zona horaria.
Para que te lo haga todo en UTC tendrás que poner tanto consola como raspi en esa hora y hacer que weewx borre las tablas diarias:
sudo wee_database weewx.conf --drop-daily
Después reconstruir esas tablas que deberán de salir en hora UTC para los diarios:
sudo wee_database weewx.conf --rebuild-daily
El problema que puedes tener es que si por ejemplo está grabando datos cada 5 minutos weewx al basarse en esos registros para reconstruir los datos de cada día puede no darse la verdadera temperatura mínima o máxima etc, por ejemplo si tiene las 7:30 y 7:35 y la mínima se produjo a las 7:33 no te va a poner esa mínima sino la que encuentre en esos registros. Con la lluvia podría no contabilizarla toda. En las tablas diarias sospecho que va grabando conforme en tiempo real cuando se van dando las máximas o mínimas.
Por eso a mí personalmente me gusta que grabe cada minuto cualquier programa por si hay que echar mano de logs o de, como en este caso, de base de datos.
Si lo tienes cada minuto no va a haber problema, si no lo tienes te puedes encontrar con el imprevisto que te he dicho.
También se puede intentar ver si te actualiza los diarios con sudo wee_database weewx.conf --update y te pone los intervalos de tiempo correctos. Es cuestión e ir probando con la BBDD teniendo una copia de seguridad hecha por si los resultados no son los esperados.
Lo solución menos ortodoxa sería entonces modificar los timestamps de cada tabla diaria poniéndole el tiempo unix UTC si es día con horario de verano o día con horario de invierno, cosa harto difícil ya que la columna dateTime no está en formato date (está en integer) y no se le pueden aplicar los métodos de esa clase para convertirlos.
En cuanto a lo de /var/log.... has probado a ponerle 50M en fstab para ver si puede arrancar apache2 ?? Seguramente tengas que hacerle un logrotate (si no lo tienes con apache2) para evitar que alcance mucho tamaño y te llene esa asignación de espacio.
P.D. En cuanto a la conversión de hora local a hora UTC ten en cuenta que los días en UTC pueden no tener los mismos acumulados de lluvia si ha habido lluvia entre esas 2 horas (o una) que las que has tenido con hora local. Lo mejor es empezar con un formato y seguir con él.... los cambios de sentido en medio del trayecto no son buenos...
Saludos
-
Hola.
En lo referente a tmpfs /var/log/ da igual que tenga 20, 50 incluso 100 Megas, cuando esta activa no arranca apache2, queda en el cajón de pendiente...
Ocurre que ya se me han ido alguna que otra tarjeta SD (son el talón de Aquiles de las RPI) y por eso ahora quiero que inicien desde USB y por supuesto tengo programadas copias de seguridad diarias en un pen usb que voy borrando periódicamente.
Respesto a la base de datos voy a toquitearla un poco en base a tus indicaciones y según los resultados optare por cambiar a UTC o quedarme como estoy que eso no me da problemas.
Gracias de nuevo.
-
Por lo que he visto por la web y por el foro de meteoclimatic el problema es que apache2 trata de iniciar a escribir en el log cuando /var/log no está montado en tmpfs, de hecho te dará el típico error No such file or directory: AH02291: Cannot access directory '/var/log/apache2' for main error log (lo podrás ver si ejecutas sudo service apache2 status o sudo systemctl status apache2)
Puedes poner el resultado de ejecutar esto ?
sudo cat /usr/lib/tmpfiles.d/var.conf
-
Ahí pego lo que responde :
Last login: Sat Oct 26 09:11:02 2019 from 192.168.1.34
pi@raspberrypi:~ $ sudo cat /usr/lib/tmpfiles.d/var.conf
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
# See tmpfiles.d(5) for details
q /var 0755 - - -
L /var/run - - - - ../run
d /var/log 0755 - - -
f /var/log/wtmp 0664 root utmp -
f /var/log/btmp 0660 root utmp -
f /var/log/lastlog 0664 root utmp -
d /var/cache 0755 - - -
d /var/lib 0755 - - -
d /var/spool 0755 - - -
pi@raspberrypi:~ $
-
Este el resultado de apache2 status:
pi@raspberrypi:~ $ sudo service apache2 status
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Sat 2019-10-26 11:01:19 UTC; 7min ago
Docs: https://httpd.apache.org/docs/2.4/
Process: 377 ExecStart=/usr/sbin/apachectl start (code=exited, status=1/FAILURE)
oct 26 11:01:19 raspberrypi apachectl[377]: AH00557: apache2: apr_sockaddr_info_get() failed for ras
oct 26 11:01:19 raspberrypi apachectl[377]: AH00558: apache2: Could not reliably determine the serve
oct 26 11:01:19 raspberrypi apachectl[377]: (2)No such file or directory: AH02291: Cannot access dir
oct 26 11:01:19 raspberrypi apachectl[377]: (2)No such file or directory: AH02291: Cannot access dir
oct 26 11:01:19 raspberrypi apachectl[377]: AH00014: Configuration check failed
oct 26 11:01:19 raspberrypi apachectl[377]: Action 'start' failed.
oct 26 11:01:19 raspberrypi apachectl[377]: The Apache error log may have more information.
oct 26 11:01:19 raspberrypi systemd[1]: apache2.service: Control process exited, code=exited, status
oct 26 11:01:19 raspberrypi systemd[1]: apache2.service: Failed with result 'exit-code'.
oct 26 11:01:19 raspberrypi systemd[1]: Failed to start The Apache HTTP Server.
lines 1-16/16 (END)...skipping...
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Sat 2019-10-26 11:01:19 UTC; 7min ago
Docs: https://httpd.apache.org/docs/2.4/
Process: 377 ExecStart=/usr/sbin/apachectl start (code=exited, status=1/FAILURE)
oct 26 11:01:19 raspberrypi apachectl[377]: AH00557: apache2: apr_sockaddr_info_get() failed for raspberrypi
oct 26 11:01:19 raspberrypi apachectl[377]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerNam
oct 26 11:01:19 raspberrypi apachectl[377]: (2)No such file or directory: AH02291: Cannot access directory '/var/log/apache2/' for main error log
oct 26 11:01:19 raspberrypi apachectl[377]: (2)No such file or directory: AH02291: Cannot access directory '/var/log/apache2/' for error log of vhost defined at /etc/ap
oct 26 11:01:19 raspberrypi apachectl[377]: AH00014: Configuration check failed
oct 26 11:01:19 raspberrypi apachectl[377]: Action 'start' failed.
oct 26 11:01:19 raspberrypi apachectl[377]: The Apache error log may have more information.
oct 26 11:01:19 raspberrypi systemd[1]: apache2.service: Control process exited, code=exited, status=1/FAILURE
oct 26 11:01:19 raspberrypi systemd[1]: apache2.service: Failed with result 'exit-code'.
oct 26 11:01:19 raspberrypi systemd[1]: Failed to start The Apache HTTP Server.
~
-
Ok prueba a editarlo con sudo nano /usr/lib/tmpfiles.d/var.conf añadiendo la línea en negrita que pongo a continuación y lo guardas y reinicias raspi a ver qué tal:
q /var 0755 - - -
L /var/run - - - - ../run
d /var/log 0755 - - -
f /var/log/wtmp 0664 root utmp -
f /var/log/btmp 0660 root utmp -
f /var/log/lastlog 0664 root utmp -
d /var/log/apache2 755 root adm -
d /var/cache 0755 - - -
d /var/lib 0755 - - -
d /var/spool 0755 - - -
-
Pues si, efectivamente se ha creado /var/log y apache2 arranca y esta funcionando aunque hay un par de lineas que indican algún tipo de fallo que no se si se pueden despreciar. Aparentemente funciona bien. apla3
Gracias jmviper.
Last login: Sat Oct 26 11:53:53 2019
pi@raspberrypi:~ $ df -h
S.ficheros Tamaño Usados Disp Uso% Montado en
/dev/root 27G 6,3G 19G 26% /
devtmpfs 459M 0 459M 0% /dev
tmpfs 464M 0 464M 0% /dev/shm
tmpfs 464M 13M 451M 3% /run
tmpfs 5,0M 4,0K 5,0M 1% /run/lock
tmpfs 464M 0 464M 0% /sys/fs/cgroup
tmpfs 50M 208K 50M 1% /var/log
/dev/sda6 253M 52M 201M 21% /boot
tmpfs 93M 0 93M 0% /run/user/1000
pi@raspberrypi:~ $ sudo systemctl status apache2
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2019-10-26 11:53:48 UTC; 20min ago
Docs: https://httpd.apache.org/docs/2.4/
Process: 369 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
Main PID: 427 (apache2)
Tasks: 55 (limit: 2200)
Memory: 7.2M
CGroup: /system.slice/apache2.service
├─427 /usr/sbin/apache2 -k start
├─428 /usr/sbin/apache2 -k start
└─429 /usr/sbin/apache2 -k start
oct 26 11:53:46 raspberrypi systemd[1]: Starting The Apache HTTP Server...
oct 26 11:53:48 raspberrypi apachectl[369]: AH00557: apache2: apr_sockaddr_info_get() failed for raspberrypi
oct 26 11:53:48 raspberrypi apachectl[369]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerNam
oct 26 11:53:48 raspberrypi systemd[1]: Started The Apache HTTP Server.
-
Ok perfecto :)
Más que un error es una advertencia ya que no evita su funcionamiento. Está diciendo que no hay directiva ServerName y que usa la dirección de localhost por defecto.
Si quieres quitar eso prueba a editar apache2.conf:
sudo nano /etc/apache2/apache2.conf
Localiza la línea donde pone
DefaultRuntimeDir ${APACHE_RUN_DIR}
y antes de ella pon (no tras una # o si no actúa de comentario)
ServerName localhost
Después reinicia apache2
sudo service apache2 restart
Deberían de haberse ido esas líneas.
Qué te pone ahora df -h ? Qué porcentaje de /var/log hay ocupado ?
-
Hola jmviper.
Efectivamente tras editar apache2.conf según tus indicaciones han desaparecido las lineas de fallo de conexión con el server.
En cuanto al porcentaje de /var/log, que copio bajo, no se ha incrementado mucho pero es por que he reiniciado la raspi por cambios de configuraciones.
pi@raspberrypi:~ $ df -h
S.ficheros Tamaño Usados Disp Uso% Montado en
/dev/root 27G 6,3G 19G 26% /
devtmpfs 459M 0 459M 0% /dev
tmpfs 464M 0 464M 0% /dev/shm
tmpfs 464M 18M 446M 4% /run
tmpfs 5,0M 4,0K 5,0M 1% /run/lock
tmpfs 464M 0 464M 0% /sys/fs/cgroup
tmpfs 50M 332K 50M 1% /var/log
/dev/sda6 253M 52M 201M 21% /boot
tmpfs 93M 0 93M 0% /run/user/1000
pi@raspberrypi:~ $
Gracias de nuevo. :aplaude1: