Autor Tema: Problemas raros con script  (Leído 4 veces)

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

Desconectado CarlosLSev

  • Full Member
  • ***
  • Mensajes: 116
    • Ver Perfil
    • MeteoViso
  • Estación: Waldbeck Halley- ESAND4100000041520A
Problemas raros con script
« en: Hoy a las 00:10:27 »
Hola aunque ya te comente algo por privado  jmviper, lo pongo por aquí ya que aletoriamente me sigue pasando lo mismo.
Tengo 2 script que leen el fichero realtime, uno obtiene el valor de lluvia caida, y el otro script revisa si hay cambios en el fichero realtime
Me centro en el de la lluvia por que creo que cuando fallan todos es por el mismo motivo.
He estado investigando y creo haber encontrado el motivo pero no la causa y no es el script. Ya que este ha estado muchos días funcionado correctamente. El fichero cache  guarda fecha, hora y litros.

Pero cuando llueve ejemplo 0.2 y ya no llueve mas durante el día, aleatoriamente recibo email de primera lluvia, he observado si abro el fichero cache me encuentro esto:
--20 ,0.0 en vez de esto que es lo que suele haber 28-04-2021 22:45:51,0.2
Es como si no guardase bien dicho fichero cache o se corrompiera, cuando se vuelve a ejecuta el script este no puede leerlo y piensa que esta a 0 y por eso me vuelve a enviar el email con el mensaje correspondiente.
Creí solucionarlo con un fsck
Añadí un sleep como me indicaste y tampoco.
Posiblemente sea como dijiste que CumulusMX escribe el realtime.txt y el script al mismo tiempo intenta leerlo.

Doy mas datos
En la raspberry tengo en el crontab
15 23 * * 7 sudo shutdown -r
He probado a ejecutar el script de lluvia desde la raspberry y pasa lo mismo.

Ahora en vps donde alojo la web
El crontab
Código: [Seleccionar]
*/12 * * * * php /var/www/html/script/alertarealtime.php
*/3 * * * *   php /var/www/html/script/alertameteoclimatic.php
*/10 * * * * php /var/www/html/script/alertalluvia.php
*/15 * * * * sh /var/www/html/webtest/script/raspionline.sh miipxxx.ddns.net 22>/dev/null 2>&1
Resumiendo
1.- Script que notifica que el fichero realtime esta actualizado o no
2.- Script que me notifica si se envían datos a meteoclimatic o no
3.- Script que indica si empezó a llover
4,. Script que me notifica si la raspberry esta offline
El 1 y 3 leen el realtime.txt
En los 2 script suelo recibir un correo de crontab con errores cuando fallan y luego en el caso del script de lluvia el email de Primera luvia
En el caso del script de lluvia
Código: [Seleccionar]
PHP Notice:  Undefined offset: 1 in /var/www/html/script/alertalluvia.php on line 26
PHP Notice:  Undefined offset: 2 in /var/www/html/script/alertalluvia.php on line 26
PHP Notice:  Undefined offset: 1 in /var/www/html/script/alertalluvia.php on line 26
PHP Notice:  Undefined offset: 9 in /var/www/html/script/alertalluvia.php on line 27

Siendo esas lineas
26  $fechar = $fecha[0].'-'.$fecha[1].'-20'.$fecha[2].' '.$realtime[1];
27  $lluvia = $realtime[9];
Creo que indica que no ha podido leerlo
Con el script de realtime me pasa algo parecido, pero solo me llegan los email de error de cron y nada mas, se que puedo desactivarlos.
Otra curiosidad, si cron ejecuta el script cada 10 minutos me llega el email y telegram  y a los 10 minutos otro.
Una solución podría ser subir el realtime.txt en vez de a los 15 seg ponerlo mas tiempo.
O ejecutar los script una vez se ha guardado el realtime.txt tal y como leí, pero creo que es marear mas la perdiz,,,
https://www.lineadecodigo.es/ejecutar-un-script-al-modificar-un-fichero-con-inotify

Lo raro es que me ha estado funcionando bien, me di cuenta 2 días que llovía algo por la noche y luego no mas...
Siento darte la paliza :((
« Última modificación: Hoy a las 04:22:20 por CarlosLSev »