¿Cómo reiniciar automáticamente los servicios cuando están inactivos?
Secuencia de comandos de shell para reiniciar los servicios si se caen / fallan
Es común que el process fallar o caer debido a varias razones, que puedes investigarate y solucionar los problemas, pero eso puede llevar un poco de tiempo.
Sin embargo, hay una cosa que puedes hacer de inmediato.ately para reducir el tiempo de inactividad para una mejor disponibilidad es automatizarate reinicio del process si esta abajo.
Hagamos esto a través de la autopista. guiones de shell
Puede utilizar los siguientes scripts de shell para ejecutar crontab, que verificará los servicios cada 15 minutos (puede ajustar el intervalo de tiempo) y se iniciará si no se está ejecutando. Suena bien?
En este artículo, daré dos ejemplos de cómo iniciar los servicios si están inactivos.
Si está utilizando CentOS / RHEL 7+, también puede verificar este artículo explica el uso de systemd Para reiniciar.
Reiniciar automáticamente MySQL, PHP-FPM, Nginx si está inactivo
Hace unas semanas, mudé a Geek Flare a DigitalOcean motor fácil y MariaDB se bloqueó dos veces en una semana.
Verá que se estrelló temprano en la mañana y estuvo inactivo durante más de 3 horas, lo cual no es bueno. Es mi blog, así que no $$$. impact pero todavía me siento mal por ello.
ok, Showtime ahora…
- Create un archivo usando editores vi en la ubicación deseada (en esta demostración lo colocaré debajo /opt/startifdown.sh)
- Copie y pegue el siguiente script en el archivo y guárdelo
#!/bin/bash
#Scripts to start services if not running
ps -ef | grep nginx |grep -v grep > /dev/null
if [ $? != 0 ]
then
/etc/init.d/nginx start > /dev/null
fi
ps -ef | grep php5-fpm |grep -v grep > /dev/null
if [ $? != 0 ]
then
/etc/init.d/php5-fpm start > /dev/null
fi
ps -ef | grep mysql |grep -v grep > /dev/null
if [ $? != 0 ]
then
/etc/init.d/mysql start > /dev/null
fi
- Cambiar el permiso del archivo para que sea ejecutable
chmod 755 startifdown.sh
Pruébalo manualally para garantizar que el script sea ejecutable.
Puede detener el servicio y utilizar el script para comprobar si se está iniciando. Una vez que esté satisfecho, puede poner esto en cron para que se ejecute cada 15 minutos.
*/1 * * * * /opt/startifdown.sh
Refiera mi artículo crontab si necesita algo de inspiración para cambiar el intervalo de tiempo.
Ahora, este pequeño guión se encargará de iniciando los servicios si falla y no tendré esas 3 horas de inactividad.
¡Mucho mejor!
Reinicie automáticamente WebSphere DMGR, Nodeagent, JVM si está inactivo
Create un archivo con los siguientes scripts: lo llamaré startwasifdown.sh
#!/bin/bash
#Scripts to start services if not running
#Specify DMGR Path Here
DMGR=/opt/IBM/WebSphere/AppServer/profiles/Dmgr01
#Specify Profile Path Here
Profile=/opt/IBM/WebSphere/AppServer/profiles/AppSrv01
ps -ef | grep dmgr |grep -v grep > /dev/null
if [ $? != 0 ]
then
$DMGR/bin/startManager.sh > /dev/null
fi
ps -ef | grep nodeagent |grep -v grep > /dev/null
if [ $? != 0 ]
then
$Profile/bin/startNode.sh > /dev/null
fi
ps -ef | grep server1 |grep -v grep > /dev/null
if [ $? != 0 ]
then
$Profile/bin/startServer.sh server1 > /dev/null
fi
Nota: Cambie la ruta para adaptarla a su entorno y agregue más líneas para más de una JVM.
- Cambiar el permiso del archivo para que sea ejecutable
chmod 755 startwasifdown.sh
Pruébalo manualally, y una vez que esté satisfecho con él, puede ponerlo en cron para ejecutarlo cada 15 minutos o cuandoatemás te conviene.
*/1 * * * * /opt/ startwasifdown.sh
Esto es sólo una guía para que usted pueda automatizarate las cosas.
¿Te encanta la automatización? Aprender acerca secuencias de comandos de shell bash.