MONITOiaNDO MYSQL CON PYTHON

Ahora sé por qué lloráis, pero es algo que yo nunca podré hacer.”

ARNOLD SCHWARZENEGGER – Terminator

Que tal querido lectores y únicos amigos, por fin se me ha hecho nuevamente escribir en este espacio y bueno comenzaremos con un poco de lo que esta de moda que es IA y para ser un poco mas exacto con el ChatGPT. La tecnología que disruptiva que hace temblar algunos por lo interesante que resulta ser a la hora de resolver problemas y mas si el problema es de programación. Pero que se puede esperar cuando fuimos nosotros mismo que la educamos subiendo tanto código , etiquetadolo , categorizandolo. Solo era cuestión de tiempo . Por eso hoy vamos a ponerlo a prueba.

ChatGPT es un prototipo de chatbot de inteligencia artificial desarrollado en 2022 por OpenAI que se especializa en el diálogo. El chatbot es un gran modelo de lenguaje, ajustado con técnicas de aprendizaje tanto supervisadas como de refuerzo.​ Se basa en el modelo GPT-3.5 de OpenAI, una versión mejorada de GPT-3

Y como es que decidí probar el chatGPT. Bueno pues todo paso cuando donde trabajo extrañamente el servicio de la pagina web. Que esta hecha en wordpress se caía a cada rato. el horrible mensaje de “Error establishing a database connection “. Solo es encender nuevamente el mysql pero como que eran varias veces y sentí que ya era un problema así que le puse atención y dije vamos a ver que choe.

Busque en los logs de mysql – /var/log/mysql/ . Y pues parece ser que los apagones son extraños pero normales. No quise paniquearme y pensar que sea algún tipo de ataque así que me dispuse a resolverlo a la forma de un programador. Y es automatizando lo que hacia “encender el mysql cuando este estaba apagado” XD. Y ahi es cuando dije . Voy a usar esa madre del ChatGPT para ver si esto me lo hace sin perder tanto tiempo.

Pues bueno le pregunte tal cual al prompt que te da el aplicativo . ” Como hacer un monitoreo de mysql en el cual si esta apagado lo enciendas en python para SO basado en linux” . Y esto fue lo que me arrojo primero. La imagen muestra la primera versión del código.

Bueno pues a primera vista parece todo GUAY. pero no realmente la decisión esta mal , jamas de los jamases iba reiniciar el Gestor. Y es que la variable status lo esta tomando como un int. Y pues bueno no es un int y muchos menos un string . Te regresa una salida del comando que ejecuta en el parámetro run. Y bueno esa script te lo ejecuta cada 10 segundos . Así que si tienes un servidor muy básico, lo matas así de fácil muchas peticiones sin sentido te comes la memoria. Y dices maldito CHATGPT de mierda

Pero hay que destacar que el resultado es bueno, ese chatGPT me jodeara si no cambio de vocación lo mas rápido posible. Pero por el momento al parecer que es un Junior. Por que no lee la documentación y no dedujo que la función run debería de asignarle parámetros que conviertan el resultado en un string. Así que ChatGPT al igual que uno no lee puff punto malo. Esto como si copiara el primer código de stackoverflow. Ja. Bueno GPT ponte a leer esto -> https://docs.python.org/3/library/subprocess.html

Ahora bien. Después me dije cuantas desconexiones hay en un día. De esta manera analizo de mejor manera los logs. Así que dije voy a decirle ChatGPT que haga lo mismo y luego le pediré que lo guarda en un log. Pero cual fue mi sorpresa?. Me dio otro resultado , y le volví a preguntar y me daba otro resultado. Eso si que me sorprendió. Por que realmente existen muchas maneras de resolver ese problema y muestra varias formas y la imagen que esta abajo fue una respuesta de muchas. Pero después de preguntarle lo mismo empieza a decir estupideces.

Entonces ahí es donde el humano tiene un punto a favor en contra de la IA . De muchas opciones que te presenta uno aun puede decir cual es la correcta. y la correcta es el usar el comando systemctl es la mas fácil y ese comando tiene muchas opciones que se le puede sacar mucho provecho y extenderlo mas si se quiere conocer mas a fondo el que pasa. Por lo que te pongo aqui el link de como usar el comando correctamente. https://www.solvetic.com/tutoriales/article/12288-como-usar-systemctl-comandos

Ya después de tanto preguntar al chatGPT y decirle que si el es SKYNET , Mi cerebro me dijo ya cabron. termina esa cosa y prosigue. Pues bueno este es mi script que monitorea mysql si se cae lo levanta y guarda un log con la fecha.

!/usr/bin/python3

import datetime
import subprocess
import time

def createLog(date) :
 file = open("zenky.log", "a")
 file.write("Mysql se ha apagado : "+ date)
 file.write('\n');
 file.close()

while True:
  status = subprocess.run(["systemctl", "is-active", "mysql.service"], capture_output=True, text=True)
  if status.stdout.strip() != 'active' :
    subprocess.call(["systemctl", "start", "mysql"])
    createLog(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
 time.sleep(999)

Lo que queda nada mas es ejecutarlo en linux como un proceso en segundo plano lo cual se hace de la siguiente manera. Hay que tener en cuanta que mi script le llame zenky.py .

monolinux@weapon-x $  nohup /home/monolinux/zenky.py&

Espero que le funcione y si leen este post es que ustedes forman parte de la resistencia. Nos leemos pronto

REFERENCIAS

https://www.linuxparty.es/57-seguridad/10567-el-comando-nohup-en-linux-le-permite-ejecutar-en-ssh-comandos-incluso-despues-de-cerrar-la-sesion.html

https://www.xataka.com/legislacion-y-derechos/dall-e-funciona-imagenes-creadores-que-no-reciben-nada-a-cambio-que-dice-copyright-ia

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *