Script en Bash

Weno, perdonadme si esto no es el debido lugar para lo que me trae hoy aqui... :D

Queria dejaros una pequeña aportacion a todos aquellos que utilizais apache o cpanel en servidores linux, sobretodo si teneis enemigos que lo unico k se dedican es a tirar estos dos servicios imprescindibles por k no son capaces de mas... xD

----------------- INICIO DEL CODIGO (Archivo: basecomp) ---------------

#!/bin/bash

resultado=$(ps aux | grep cpanel | wc -l)
resultado2=$(ps aux | grep httpd | wc -l)

echo ------------------------------------
echo INICIANDO COMPROBACION DE SERVICIOS
echo ------------------------------------

echo ----CPANEL----

if [ $resultado == '2' ];
then
echo "No esta ejecutado, procediendo a Restauracion de CPANEL"
echo "-------------------------------------------------------"
cd /etc/init.d
./cpanel restart

echo "RESTAURACION TERMINADA"
echo "----------------------"
else
echo "Esta en ejecucion"
echo "-----------------"
fi


echo "----APACHE----"

if [ $resultado2 == '1' ];
then
echo "No esta ejecutado, procediendo a Restauracion de APACHE"
echo "-------------------------------------------------------"
cd /etc/init.d
./httpd restart
echo "RESTAURACION TERMINADA"
echo "----------------------"
else
echo "Esta en ejecucion"
echo "-----------------"
fi

---------------------------------- FIN DEL CODIGO ------------------------------

-------------------- INICIO DEL CODIGO (Archivo: compstado) ------------
#!/bin/sh
while [ 1 == 1 ]
do
./basecomp
sleep 10
done
---------------------------------- FIN DEL CODIGO ------------------------------

Como veis uno es bastante simple (compstado), este solo es un bucle que se ejecutara siempre y cuando 1 sea igual a 1, xD.

Con este pogramita conseguis una comprobacion de los servicios cada 10 Segundos (SLEEP 10), en caso de quere cambiar el numero de segundos... cambiais esa linea.

Para ejecutarlo es sencillo, solo basta con poner los dos archivos juntos y ejecutar como root el siguiente codigo:
# ./compstado >> /dev/null &

Weno, espero que disfruteis con esta chorrada, pero que en realidad es bastante util... xD

PD: Si veis algun fallo o quereis mejorar el codigo, no dudeis en hacerlo. :D

Nus VeMoH! :D
Que tal si añades una entrada al cron para que se ejecute el script cada 10 minutos en lugar de tenerlo siempre ejecutando?
PD: Si veis algun fallo o quereis mejorar el codigo, no dudeis en hacerlo. smile_:D


* No uses [ ], usa [[ ]].
* No debes usar cd en scripts, usa pushd/popd si realmente necesitas cambiar el directorio.
* Usa ${variable} en lugar de $variable.
* while [ 1 == 1 ] es while true.
* El comando ps aux | grep | wc puede darte problemas, usa pidof prog | wc -w para obtener el número de instancias de un programa.

Eso si, si a tí te resuelve la papeleta... pues bien. Por otro lado, hay demonios específicos que se dedican a monitorizar los procesos del sistema. Son bastante más elaborados que tu script, pero mucho más robustos y suelen ofrecer más funcionalidades.

- ferdy
# pidof cpanel | wc -w
bash: pidof: command not found


?
TeCh escribió:# pidof cpanel | wc -w
bash: pidof: command not found

# equery b pidof
[ Searching for file(s) pidof in *... ]
sys-apps/sysvinit-2.86-r5 (/bin/pidof -> ../sbin/killall5)
xabi@gordo:~$ equery b pidof
bash: equery: command not found

tengo que instalarme equery?
corregidme si eso que no estoy seguro ni de haberos entendido.
Han usado equery, no entiendes de que hablan porque no eres un gentOOza como ellos, mooooooooo xD

Pero te lo han puesto porque equery muestra en que paquete puedes encontrar el programa pidof

pd: ni lo leí, parece ke está como killall5 xD


Salu2!
cheff escribió:tengo que instalarme equery?
corregidme si eso que no estoy seguro ni de haberos entendido.

Lo que dice ahí es que pidof es un enlace simbólico a killall5, y que ambos pertenecen al paquete sysvinit.

Un saludo.
Vale, me he colado en una conversacion que no podia entender, cuando me entere mas del asunto ya os comentaré. Y cuando esté menos fumau [Alaa!]
Podrias decirme alguno de esos programas mas currados que mi simple script?

Por ahora he provado el Webmin y aun que el monitoreo de servicios funciona mas o menos igual que mi script, no funciona ni la notificacion ni el reinicio automatico del servicio en cuestion

THX. :S
10 respuestas