Linux/Unix Shell Scripting - Apagar el servidor linux correctamente.

 
Vista:

Apagar el servidor linux correctamente.

Publicado por Emilio (2 intervenciones) el 05/09/2005 13:13:20
Gracias, por la ayuda, estuve viendo varios manuales y finalmente lo resolvi con el siguiente script. Espero que le sea de utilidad a mas de uno.

#!/bin/bash
# copiamos el contenido de smbstatus en dos ficheros, apagar.log se machaca siempre.
# sucesosapagar.log nos guarda un historico, por si algun dia queremos comprobar algo.
smbstatus -p > apagar.log
echo ============ Hora de registro: $(date) =================== >>sucesosapagar.log
smbstatus >> sucesosapagar.log
# si No hay ningun equipo conectado en samba nos pregunta si queremos apagarlo
# suponiendo que nuetros equipos estan configurados con ips 192.168.x.x
if ! grep -ic "192.168" apagar.log; then
clear
echo No hay usuarios Conectados, Esta seguro que quiere APAGAR el SERVIDOR?
OPCIONES="si no"
select opt in $OPCIONES; do
if [ "$opt" = "si" ]; then
# hacemos una cuenta atras por si queremos cancelar el proceso.
CONTADOR=30
until [ $CONTADOR -lt 0 ]; do
clear
echo Apagando el servidor....En $CONTADOR segundos
let CONTADOR-=1
/bin/sleep 1
done
clear
echo Servidor Apagandose
/bin/sleep 5
echo El servidor se ha apagado correctamente >> sucesosapagar.log
shutdown -h now
exit
elif [ "$opt" = "no" ]; then
# guardamos en el historico que se ha cancelado la operacion.
echo Se ha CANCELADO APAGAR CORRECTAMENTE EL SERVIDOR >> sucesosapagar.log
echo Se ha cancelado la operacion
exit
else
clear
echo Pulse 1 para SI o Pulse 2 para NO
echo No hay usuarios Conectados, Esta seguro que quiere APAGAR el SERVIDOR?
fi
done
else
# en caso que haya algun equipo conectado a samba nos indica que ips, usuario y nombre de pc estan conectados.
clear
echo NO SE PUEDE APAGAR EL SERVIDOR,HAY QUE APAGAR LOS PCS:
! grep -i "192.168" apagar.log
/bin/sleep 4
echo ¿Deseas APAGAR EL SERVIDOR DE TODOS MODOS?
OPCIONES="si no"
select opt in $OPCIONES; do
if [ "$opt" = "si" ]; then
echo El servidor se ha INTENTADO APAGAR INCORRECTAMENTE >> sucesosapagar.log
clear
# Mostramos un mensaje que avises al servicio tecnico.
echo Es mejor que NO apagues el SERVIDOR, dejalo encendido o llama al Servicio Tecnico
/bin/sleep 4
exit
elif [ "$opt" = "no" ]; then
echo Se ha CANCELADO INTENTAR APAGAR INCORRECTAMENTE >> sucesosapagar.log
echo Se ha cancelado la operacion
exit
else
clear
echo Pulse 1 para SI o Pulse 2 para NO
echo Hay usuarios conectados, ¿Deseas APAGAR EL SERVIDOR DE TODOS MODOS?
fi
done

fi

# script de Emilio, se permite su utilización, modificación y mejora.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder