Pinturas rupestres en las Cuevas de la Plata

Pocas personas parecen saber que una cueva de Sierra Espuña forma parte del Patrimonio Mundial, concretamente del Arte Rupestre del Arco Mediterráneo de la Península Ibérica. Una de las llamadas Cuevas de la Plata contiene varios trazos que parecen sugerir la presencia de una embarcación.

Una de las Cuevas de la Plata desde el exterior
Una de las Cuevas de la Plata desde el exterior

El Parque Regional de Sierra Espuña suele ser más conocido por su fauna, la reforestación liderada por Ricardo Codorníu o las paredes del Barranco de Leiva repletas de clavos y tornillos de escalada. Pero también cuenta con lugares de interés geológico como cavidades subterráneas y restos de la actividad minera que antaño tuvo, pozos de nieve e incluso pinturas rupestres.

[…] (continuar leyendo)

Pozos de la Nieve – Fuente Blanca – El Bosque – Malvariche

Malvariche es para mí quizás de los lugares más especiales de Sierra Espuña. En pleno corazón de la sierra es un lugar que siempre remansa paz, donde parece que el tiempo y a veces incluso el viento se detienen, a pesar de que a diario haya animales que se la juegan.

Caserío desde la Loma de la Solana de Malvariche

Caserío desde la Loma de la Solana de Malvariche

Llevaba algún que otro año sin ir y se nos ocurrió probar una manera que yo no conocía, partir de los Pozos de la Nieve como en otras ocasiones, pero dando un atrevido rodeo por El Bosque. Si bien no es tan corto como acceder y volver por el Norte desde la Casa del Calderero, tampoco es tanta paliza como la vuelta por el pico Malvariche, a pesar de que la subida al Cerro de Piedras Blancas conlleva andar monte a través sin senda alguna. […] (continuar leyendo)

«Seta» y minas de cobre de Sierra Espuña

A pesar de que los mapas topográficos de Sierra Espuña señalan varios puntos de interés, minas entre ellos, siempre hay lugares que no están indicados en ellos. Como en este caso fueron unas minas de cobre y una roca con forma de seta —o níscalo desde mi punto de vista— que lucen algunos bares de la zona entre fotos características de la sierra.

Plano de la ruta

Plano de la ruta

Nosotros optamos por una ruta desde los pozos de la nieve, combinando sendas, subir y bajar cortafuegos, un poco de monte a través entre matorrales poco amigos de las prendas de verano, otro poco de barrancos, etc, y además a las puertas del verano, con lo que ello conlleva en cuanto a reservas de agua, protección solar y garrapatas. Poco más de 13 kilómetros en unas tres horas y media de tiempo andando, pero en total unas cinco [ruta en wikiloc].

Empezamos la ruta desde los pozos de la nieve, por una senda que sale a mano derecha antes de llegar al collado Mangueta. Al poco dimos con una fuente de agua con bastante aspecto de ser frecuentada por los arruís, que por estar ya en los inicios de la temporada estival apenas llevaba un hilo de agua. En otras épocas del año sí podemos encontrarla con más agua.

Fuente

Fuente

Continuamos descendiendo por lo que algunos conocen como la senda de las dos mil curvas […] (continuar leyendo)

Que cada palo aguante su vela en el Mar Menor

Para unos parece que el Mar Menor sólo tuviera problemas desde 2016 debido a las desalobradoras que desembocan en la rambla del Albujón [La Verdad; La Opinión], para otros desde que el agua lleva turbia dos veranos, para otros desde antes debido a los nitratos que las lluvias arrastran a la ribera Sur de la laguna [La Verdad], para otros desde que se introdujo la primera embarcación a motor, para otros desde que se edificó la primera casa, para otros desde que el ser humano existe,.. Para cada cual desde que la contaminación le afecta en su playa y nada más que en la suya, como bien saben en las asociaciones de vecinos.

Administraciones (locales, autonómica y estatal), agricultores, ecologistas, vecinos y veraneantes llevan años tirándose de todo sin que nuestra laguna salada favorita mejore. Servidor ha ido plasmando por aquí desde 2009 cómo en el Mar Menor tenemos peores cosas que los chiringuitos, cómo la administración pareció adoptar la política de chiringuitos no y porquería sí, la novedad de las babosas en 2010, los estudios acerca de los vertidos en 2011, las redes antimedusas que barcos y ladrones de plomo boicoteaban en 2012 y cómo en 2014 la administración decidía excusar la porquería en algunas playas (y ahorrarse su limpieza) prohibiendo en baño en virtud del fartet.

Ya que dicen que una imagen vale más que mil palabras, aquí van unas fotografías en los años 2009, 2014, 2017 y 2018 de las inmediaciones del Club de Regatas Mar Menor o Puerto Deportivo Angel Villacieros (Los Urrutias, Cartagena, Murcia, Españistán), junto a la Colada del Mar Menor [Ayuntamiento de Cartagena].

Los Urrutias 2009 (2) […] (continuar leyendo)

Cambiar el estado devuelto por un monitor de Nagios

En algunas ocasiones se puede necesitar que un monitor de Nagios nunca devuelva el estado CRITICAL, considere el estado UNKOWN como WARNING, invierta el estado OK por CRITICAL, etc. A priori se podría pensar en modificar el plugin o jugar con Bash, pero para invertir o cambiar el resultado de un plugin está negate.

Por ejemplo, en el caso de querer utilizar el plugin check_ping para saber si una máquina está en la red o no, pero que en caso de que no lo esté (como que se agote el timeout) el estado devuelto sea WARNING y no CRITICAL. Se llamaría a negate tal que:

  • Se le indique un timeout superior al de check_ping, que en caso de superarse devolvería CRITICAL, porque supondría que el plugin objeto de la comprobación no está funcionando bien.
  • Que sustituya la cadea que representa el estado, que aunque Nagios hace caso del código de salida así el texto devuelto será acorde al número.
  • Se le indique que reemplace el estado CRITICAL por WARNING.
  • Se añada al final el plugin y argumentos cuya salida se quiere invertir según convenga.

Hablando en línea de comandos sería algo así:

# /usr/lib/nagios/plugins/negate -t '20' -s -c WARNING /usr/lib/nagios/plugins/check_ping -H '192.168.1.3' -w '5000.0,80%' -c '10000.0,100%' -p '1' -t '10'
PING WARNING - Packet loss = 100%|rta=10000.000000ms;5000.000000;10000.000000;0.000000 pl=100%;80;100;0
# echo $?
1

En cambio si no se usase negate el plugin devolvería el estado CRITICAL:

# /usr/lib/nagios/plugins/check_ping -H '192.168.1.3' -w '5000.0,80%' -c '10000.0,100%' -p '1' -t '10'
PING CRITICAL - Packet loss = 100%|rta=10000.000000ms;5000.000000;10000.000000;0.000000 pl=100%;80;100;0
# echo $?
2

Fuente → Nagios only create warning for a http service [Server Fault]

Alta disponibilidad de Internet con Linux (i)

En unos firewalls con Linux hay infinitas maneras de intentar conseguir alta disponibilidad de salida a Internet, aunque todas tienen sus inconvenientes. Voy a contar un ejemplo combinando Conntrack, Iptables, Corosync, Pacemaker y un script inspirado en la solución de amperis.

Una de las soluciones que primero se vienen a la cabeza es utilizar un algoritmo de pesos con ip route según la relación de velocidad de los proveedores contratados o nuestras preferencias, configurando una ruta por defecto multicamino. Pero esto pronto empezará a dar problemas en según qué conexiones o aplicaciones al encontrarse que según qué paquetes les llegan por distintas IP públicas, como las páginas de los bancos. Y aunque la lógica de dividir el tráfico entre proveedores también puede hacerse con iptables y el módulo statistic, no se evita el problema del multicamino.

Justo acabo de mencionar a iptables […] (continuar leyendo)

Recargando un servidor de Node.js con WebSocket

Un sencillo servidor corriendo sobre Node.js puede permitir la recarga sin interrupciones, de manera amistosa, algo parecido al reload de Apache u otros demonios en Linux. Para ello sólo es necesario que haya un proceso padre que lance hijos y les envíe señales según sea necesario. Sin embargo el cierre de las conexiones esperando a que estas terminen puede dar algunas complicaciones cuando hay un WebSocket.

La gestión de padre e hijos se puede hacer con el módulo cluster. En este ejemplo el script a lanzar manualmente es master.js. Él a su vez lanzará al script server.js y le pasará las señales SIGHUP para recargar el servidor (terminar amistosamente) o SIGTERM para terminar sin piedad.

master.js:

'use strict';

var cluster = require('cluster');
const path = require('path');

cluster.setupMaster({
  exec: path.join(__dirname, 'server.js')
});

//fork the first process
cluster.fork();

process.on('SIGHUP', function () {
  var new_worker = cluster.fork();
  new_worker.once('listening', function () {
    //stop all other workersS
    for (var id in cluster.workers) {
      if (id === new_worker.id.toString()) continue;
      cluster.workers[id].process.kill('SIGHUP');
    }
  });
}).on('SIGTERM', function () {
  for (var id in cluster.workers) {
    cluster.workers[id].process.kill('SIGTERM');
  }
});

[…] (continuar leyendo)