LINUX

Shell Script para verificar el estado del servicio

más scripts de shell
En este tutorial, explicaré un script de shell que verifica si el servicio se está ejecutando y, si no lo está, intentaré iniciarlo.

Es bueno que el administrador del sistema se asegure de que los servicios cruciales estén funcionando todo el tiempo.

Shell Script para verificar el estado del servicio

Este script verificará el estado de cualquier servicio init.d e iniciará ese servicio si no se está ejecutando.

#!/bin/bash

if [ "$#" = 0 ]

then
echo "Usage $0 "

exit 1

fi

service=$1

is_running=`ps aux | grep -v grep| grep -v "$0" | grep $service| wc -l | awk '{print $1}'`

if [ $is_running != "0" ] ;

then

echo "Service $service is running"

else

echo

initd=`ls /etc/init.d/ | grep $service | wc -l | awk '{ print $1 }'`

if [ $initd = "1" ];

then
startup=`ls /etc/init.d/ | grep $service`

echo -n "Found startap script /etc/init.d/${startup}. Start it? Y/n ? "

read answer

if [ $answer = "y" -o $answer = "Y" ];

then
echo "Starting service..."

/etc/init.d/${startup} start

fi

fi

fi

Resultados

bobbin@linoxide:/$ ./service.sh apparmor
Service apparmor is not running
Found startap script /etc/init.d/apparmor. Start it? Y/n ? Y
Starting service...
* Starting AppArmor profiles [OK]

Aprenda este guión línea por línea

# verifique si el nombre del servicio pasó al script como argumento, si no hay argumentos (0), haga lo siguiente

si [ «$#» = 0 ]

entonces

«Usage $ 0» #escribir en el uso de la terminal

eco

# ya que no hay argumentos, necesitamos salir del script y el usuario volver a ejecutarlo

salida 1

fi

#obtener el nombre del servicio del primer argumento

servicio = $ 1

# esta verificación, si el servicio se ejecuta usando el comando ps, después de que eliminemos nuestro proceso de la salida, ya que el script también coincidirá, con wc contamos el número de líneas coincidentes.

is_running = `ps aux | grep -v grep | grep -v «$ 0» | grep $ servicio | wc -l | awk ‘{imprimir $ 1}’ `

#es el número de líneas no es 0 haz lo siguiente

si [ $is_running != «0» ] ;

entonces

#simplemente ponga esta línea en la terminal

echo «Service $ service se está ejecutando»

# si el número de precesos es 0

demás

#Service $ service no se está ejecutando «#solo ponga esta cadena en la terminal

eco

#comprobar archivos en /etc/init.d
(directorio con scripts de inicio) con nombre similar al servicio

initd = `ls /etc/init.d/ | grep $ servicio | wc -l | awk ‘{imprimir $ 1}’ `

# si hay un script con un nombre similar

si [ $initd = «1» ];

entonces

# esta línea obtiene el nombre del script de inicio (ls – enumera los archivos en el directorio

startup = `ls /etc/init.d/ | grep $ servicio`

echo -n «Se encontró el script de inicio /etc/init.d/${startup}. ¿Iniciarlo? ¿Y / n?»

# esperando la respuesta del usuario

leer la respuesta

#si responde S o y

si [ $answer = «y» -o $answer = «Y» ];

entonces
echo «Iniciando servicio …»

# ejecutando script de inicio

/etc/init.d/${startup} inicio

fi
# salida del bucle if

fi

# salida del bucle if

fi

Publicaciones relacionadas

Deja una respuesta

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

Botón volver arriba
Cerrar