|
Gente en LÃnea |
|
Tenemos 12 invitados conectado(s) |
|
EstadÃsticas |
Ver contenido por hits : 327589
|
| El Clima | | Current Thu, 09 Sep 2010 12:41 pm CDT | City: Ocoyucan Mostly Cloudy sunrise: 7:19 am sunset: 7:40 pm |  | Act: 23° Máx: 22° Mín: 12° |
| Esta Noche | Mañana | |  | Scattered Thunderstorms | Scattered Thunderstorms | | | Máx: 22°
Mín: 12° | Máx: 22°
Mín: 12° |
|
 |
|
Scripts
|
|
Escrito por Domingo Varela
|
|
Viernes, 06 de Noviembre de 2009 12:33 |
|
Este shell script monitorea servicios que estan activos en un servidor Linux.Â
#!/bin/bash # Shell script para monitorear servicios que estan corriendo en Linux tales como: # Dns, Pop3, Imap, web, ssh, mail, mysql, etc. # # Si el servicio falla, entonces se envia un email al SysOp # Last updated: 6/Nov/2009. # Probe: True #
# # Settings #
ports="ssh domain http smtp pop3 imap mysql pop3s imaps https" Â # Nombre de los servicios service="SSH DNS HTTP MAIL POP3 IMAP MYSQL POP3S IMAPS HTTPS" Â #Email del SysOp ADMINEMAIL="
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
"  NETSTAT=/bin/netstat MAIL=/usr/bin/mail LOGGER=/usr/bin/logger ID=/usr/bin/id MAIL=/bin/mail LOGGER=/bin/logger  c=1 status="" sendmail=0 logtosyslog=0 LOG="/tmp/services.log.$$" Â
log(){ Â Â Â Â Â Â Â echo "$@" Â Â Â Â Â Â Â echo "$@" >> $LOG } Â
die(){ Â Â Â Â Â Â Â echo "$@" Â Â Â Â Â Â Â exit 999 } Â
is_root(){ Â Â Â Â Â Â Â local id=$($ID -u) Â Â Â Â Â Â Â [ $id -ne 0 ]Â && die "You must be root to run $0." }
init_script(){        [ ! -x $MAIL ] && die "$MAIL command not found."        [ ! -x $NETSTAT ] && die "$NETSTAT command not found."        [ ! -x $LOGGER ] && die "$LOGGER command not found."        [ ! -x $ID ] && die "$ID command not found."        is_root        >$LOG } Â
# Verificamos que todos los servicios esten activos y se envia un email si no estan activos chk_services(){        log "-------------------------------------------------------------"        log "Running services status @ $(hostname) [ $(date) ]"        log "-------------------------------------------------------------"         # Obtenemos los puertos        RPORTS=$($NETSTAT --tcp --listening --programs | grep -vE '^Active|Proto' | grep 'LISTEN' | awk '{ print $4}' | cut -d: -f2 )                for t in $ports        do                sname=$(echo $service | cut -d' ' -f$c)                echo -en " $sname\t\t\t : "                echo -en " $sname\t\t\t : " >> $LOG                for r in $RPORTS                do                        if [ "$r" == "$t" ]                        then                                status="YES"                                sendmail=1                                break                        fi                done                echo -n "$status"                echo ""                echo -n "$status" >>$LOG                echo "" >>$LOG                [ $logtosyslog -eq 1 ] && $LOGGER "$sname service running : $status"                               c=$( expr $c + 1 )                status="NO"        done        log "-------------------------------------------------------------"        log "This is an automatically generated $(uname) service status notification by $0 script."         if [ $sendmail -eq 1 ];        then                $MAIL -s "Service(s) Down @ $(hostname)" $ADMINEMAIL < $LOG        fi }  ### Programa Principal ### init_script chk_services  ### remove a log file ### [ -f $LOG ] && /bin/rm -f $LOG
|
|
Última actualización el Viernes, 06 de Noviembre de 2009 12:35 |
|
|
|
|
 |
|
LSC Support Online |
SysOp dvarela linuxsc.netTech Support fvasquez linuxsc.net |
|
No. de Visitas |
 | Hoy | 355 |  | Ayer | 584 |  | Esta Semana | 2084 |  | Este Mes | 5253 |  | Total | 431780 |
|
|
Archivos |
-
Diciembre, 2009
-
Noviembre, 2009
-
Octubre, 2009
-
Septiembre, 2009
-
Agosto, 2009
-
Julio, 2009
-
Junio, 2009
-
Mayo, 2009
-
Abril, 2009
-
Marzo, 2009
-
Febrero, 2009
-
Enero, 2009
-
Diciembre, 2008
-
Noviembre, 2008
-
Octubre, 2008
-
Septiembre, 2008
-
Agosto, 2008
-
Julio, 2008
|
|