Autorestart Mysql cuando esté caido en Gentoo
jajajajaj, no lo había leido, está payá xD.
MarcosBL
15/07/2008, 16:12
Ah, ok, il15, pensé que era más a menudo.
pedrito, danos un poco de eso que fumas, tio xD
Publicado inicialmente por
MarcosBL
A mandar : )
De todas formas recuerda que eso no es más que un parche, cuando tengas tiempo investiga los motivos por los que se te cae MySQL, iniciarlo por "fuerza bruta" te servirá un tiempo, pero probablemente te estés enfrentando a la posibilidad de BDs corruptas, indices perdidos, etc, etc... si el servicio se cae tanto algún problema de fondo hay : )
La verdad es que se cae una vez cada mes o así, no es mucho, lo único que así me aseguro de que se reinicie solo y no hasta que me dé cuenta
Publicado inicialmente por
pedrito
Estoy totalmente de acuerdo contigo, la idea intrinseca expuesta es brillante, las posibles opciones en el desarrollo del tema son infinitas, la claridad del argumento es mayúscula, pocas veces he tenido ocasión de leer un tema tan ameno, con la longitud justa, con la métrica adecuada, sin florituras.
Estoy totalmente de acuerdo contigo, la idea intrinseca expuesta es brillante, las posibles opciones en el desarrollo del tema son infinitas, la claridad del argumento es mayúscula, pocas veces he tenido ocasión de leer un tema tan ameno, con la longitud justa, con la métrica adecuada, sin florituras.
MarcosBL
12/07/2008, 03:30
A mandar : )
De todas formas recuerda que eso no es más que un parche, cuando tengas tiempo investiga los motivos por los que se te cae MySQL, iniciarlo por "fuerza bruta" te servirá un tiempo, pero probablemente te estés enfrentando a la posibilidad de BDs corruptas, indices perdidos, etc, etc... si el servicio se cae tanto algún problema de fondo hay : )
GRACIAS!!!!!!!!!
en serio MIL GRACIAS!!!!
MarcosBL
11/07/2008, 15:06
Creamos el fichero
vi /root/comprobacion_mysql.sh
Escribimos el contendio siguiente
#!/bin/bash
estado=$( /etc/init.d/mysql status | grep started )
if [ -z "$estado" ]
then
echo "MySQL está muerto";
/etc/init.d/mysql start;
estado=$( /etc/init.d/mysql status | grep started )
if [ -z "$estado" ]
then
echo "MySQL no ha podido ser iniciado, hágalo manualmente";
else
echo "MySQL fue reiniciado con éxito";
fi
else
# No hacemos nada, ya que MySQL está vivito y coleando, si no quisiees un aviso (recomendado no tenerlo en este caso), comenta la siguiente linea
echo "MySQL está vivo"
fi
Le damos permisos de ejecución
chmod +x /root/comprobacion_mysql.sh
Paramos mysql
Probamos el script
/root/comprobacion_mysql.sh
Vemos el resultado
nsXXXXXXX ~ # /root/comprobacion_mysql.sh
MySQL está muerto
* Starting mysql ...
* Starting mysql (/etc/mysql/my.cnf) [ ok ]
MySQL fue reiniciado con éxito
Agregamos al crono una tarea de comprobación cada 15 minutos, todos los dias, todas las horas, etc... que ejecute el script en cuestión, /root/comprobacion_mysql.sh
(Esto te lo dejo a ti, que si no no tiene mérito)
Invitamos al Marcos a una caña cuando haya ocasión.
Espero que te sirva : )
Gracias por los links, y mirandolos he hecho este script pero no hay manera de que me diga que es verdad.
Lo que he intentado hacer es que si mysql esta "started" entonces que me diga que si, pero cuando lo ejecuto me dice que no. ¿Que es lo que debería poner después del igual?
Código:
#!/bin/bash
if [ "$ /etc/init.d/mysql status" = 'status: started' ]; then
echo 'si'
else
echo 'no'
fi
nadie sabe como hacerlo?¿?¿?
Si lo que yo quiero es por ejemplo que
cada diez minutos
si mysql está apagado
/etc/init.d/mysql start.
Pero es que no tengo ni idea de como usar grep, por favor ayuda, si debe ser facil ¿no?
Te recomiendo que dediques un poco de tiempo e implementes algún sistema de monitorización tipo "nagios" o "monit". Se pueden configurar que aparte de enviarte un aviso reinicien los servicios.
Si quieres crearte un script juega con la salida de "mysqladmin status". Haciendo un "grep" y dependiendo del resultado se puede comprobar si la aplicación "mysql" está activa y si no relanzarla con un "/etc/init.d/mysql start."
Saludos.
PD: A veces las distribuciones tienen un "/etc/init.d/mysql status" que también devuelve el estado del servicio.
Hola, ya me ha pasado dos veces que mysql se queda caído hasta que le hago un "restart", esto no es problema cuando estoy cerca y me doy cuenta, pero me gustaría encontrar un script que haga esto automáticamente cuando mysql esté caido.
alguien me puede echar una mano